WEB开发网
开发学院网络安全黑客技术 脱壳基础知识入门之用内存断点找OEP 阅读

脱壳基础知识入门之用内存断点找OEP

 2007-01-15 16:44:16 来源:WEB开发网   
核心提示: 2.当我们对004AE24C下内存写入断点的时候,只能中断在004AE247,脱壳基础知识入门之用内存断点找OEP(2),3.当我们对004AE24C下内存访问断点的时候,能中断在004AE24C,而如果当他把code段的代码全部解压解密完毕了以后,JMP到OEP的时候,到这里你可能不明白

2.当我们对004AE24C下内存写入断点的时候,只能中断在004AE247。

3.当我们对004AE24C下内存访问断点的时候,能中断在004AE24C。

到这里你可能不明白了,为什么内存访问断点能中断在004AE247这一句对004AE24C的写入,而且还能中断在004AE24C的执行呢?

其实很简单,我们只要仔细体会一下“内存访问”这四个字的含义遍可以知道,当我们对004AE24C进行读取的时候需要“访问”他吧,当我对004AE24C进行写入的时候也需要“访问”他吧!!当然我们要执行内存地址004AE24C的代码的时候也是还是要“访问”他的!

所以我们不难得出下面的结论:

1.内存写入中断的地方,一定是也可以用内存访问中断。

2.内存执行的地方,也可以用内存访问中断。

如果这时你认为,那么内存写入岂不是没用了。呵呵~那我要告诉你当然不是,如果你想快速的准确的定位到004AE247这一行的时候,那么他就大有作用了!

总结一下:内存断点不修改改原代码,不会像普通断点那样因为修改代码被程序校验而导致中断失败;对于区段的访问只是区域大了一点,其原理和上面分析的三行代码是一样的。

ii.如何使用内存断点来寻找OEP呢?

要回答这个问题首先要回答这一个问题:壳是如何解压代码的?

正如我们知道的,壳如果要把原来加密或压缩的代码运行起来就必须要解压和解密原来的代码。而这一个过程我们难道不能将他看做是对代码段(code段)的写入吗?好了,解压完毕了。我们要从壳代码的区段JMP到原来的代码段的时候,难道不正是对代码段(code段)的执行吗?

理清了上面的关系就好办了,那么如果载入OD后,我们直接对code段下内存访问断点的时候,一定会中断在壳对code段的写入的代码的上面,就像上面的004AE247的这一行。而如果当他把code段的代码全部解压解密完毕了以后,JMP到OEP的时候,我们是不是还可以停在OEP的代码上面呢?而且每按下F9都会中断,因为这时code段在执行中哦!

上一页  1 2 3 4 5 6 7  下一页

Tags:脱壳 基础知识 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接