为什么小弟我用toJSONString有错
发布网友
发布时间:2022-04-25 22:56
我来回答
共1个回答
热心网友
时间:2022-06-18 11:15
设置异常捕获函数.
当异常没有处理的时候,系统就会调用SetUnhandledExceptionFilter所设置异常处理函数.
例如一些程序在出错的时候,会向用户报告说程序那出错就是利用这个.例如QQ..
异常处理中的一部分
当发生异常时,比如内存访问违例时,CPU硬件会发现此问题,并产生一个异常(你可以把它理解为中断)
然后CPU会把代码流程切换到异常处理服务例程。操作系统异常处理服务例程会查看当前进程是否处于调试状态
如果是,则通知调试器发生了异常,如果不是则操作系统会查看当前线程是否安装了的异常帧链(FS[0]),如果安装了SEH(try.... catch....),则调用SEH,并根据返回结果决定是否全局展开或局部展开。如果异常链中所有的SEH都没有处理此异常,而且此进程还处于调试状态,则操作系统会再次通知调试器发生异常(二次异常)。如果还没人处理,则调用操作系统的默认异常处理代码UnhandledExceptionHandler,不过操作系统允许你Hook这个函数,就是通过SetUnhandledExceptionFilter函数来设置。大部分异常通过此种方法都能捕获,不过栈溢出、覆盖的有可能捕获不到。
大部分保护壳都采用异常处理技术,跳出正常的代码指令流程,来迷惑Cracker。