好友
阅读权限40
听众
最后登录1970-1-1
|
233吾爱币
刚开始初级的脱壳教程都会演示最后一次异常法如何脱一些加密壳,但是从来
也没讲过原理。为啥用异常就可以脱壳?
1
如果你自己编译一个普通程序,那肯定不会发生异常吧,异常了程序都崩溃了,
还怎么运行,写程序要运行起来才行,异常了咋正常使用?那为什么加密壳异常了,
却还能运行,这些异常是壳作者故意加上去的吗?目的何在?
2
壳产生异常,异常谁在处理,是操作系统自己,还是壳作者的写的异常处理
函数来处理?比方说od里忽略异常去掉,壳产生了很多异常,比方说除零异常
吧,为什么会有除零的情况发生,想不通。
3
如果说异常是为了反调试,shift +F9就能继续运行程序了,哪里起到反调试的作用了?
4
为啥最后一次异常能用于快速找到oep?
我想不通好久了都,特发帖求助大佬解惑,谢谢。 |
最佳答案
查看完整内容
1、异常是windows系统的一种错误处理机制,处理流程是,所有异常先由系统捕获,根据seh链,逐级进行处理,一般是先交给用户程序处理,最后交给系统处理,没人处理就报错,崩溃!
2、加壳程序的异常是壳故意产生的,目的就是反跟踪,反调试,还有改变程序流程。
3、至于调试器忽略异常执行,那就是调试器不处理异常,让程序自己处理异常,没检测的反调试一是因为调试器骗了程序,二是因为程序检测没写好。
4、既然异常是壳故意为 ...
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|