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

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

ID:11108210

大小:63.00 KB

页数:6页

时间:2018-07-10

脱壳基础知识入门之用内存断点找oep_第1页
脱壳基础知识入门之用内存断点找oep_第2页
脱壳基础知识入门之用内存断点找oep_第3页
脱壳基础知识入门之用内存断点找oep_第4页
脱壳基础知识入门之用内存断点找oep_第5页
资源描述:

《脱壳基础知识入门之用内存断点找oep》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、脱壳基础知识入门之用内存断点找OEP~教育资源库  1.前言  发现论坛中很多兄弟在询问:什么是二次内存断点,三次内存断点。还有很多人对内存断点的原理不是很明白。其实只要懂得壳是如何解压代码的,那么就完全可以按自己的喜欢来下断。  本文要解决的问题是:  1.什么是内存断点?  2.如何在寻找OEP时使用内存断点。  3.内存断点的局限性。  2.内存断点寻找OEP的原理  i.首先,在OD中内存断点,硬件断点和普通断点(F2下断)是有本质区别的。硬件断点等效与SoftICE命令bpm,他的中断要用到D

2、R0-DR7的调试寄存器,也就是说OD通过这些DR0-DR7的调试寄存器来判断是否断下。  普通断点(F2下断)等效于bpx,他是在所执行的的代码的当前地址的一个字节修改为CC(int3)。当程序运行到int3的时候就会产生一个异常,而这个异常将交给OD处理,把这个异常的regEIP-1以后就正好停在了需要的中断的地方(这个根据系统不同会不一样),同时OD在把上面的int3修改回原来的代码。  而内存断点基本上使用的是对代码使用的保护属性来实现中断。  内存断点分为:内存访问断点,内存写入断点。  我们

3、知道,在程序运行的时候会有3种基本的状态产生:读取,写入,执行。004AE242  A100104000   moveax,dovdP到原来的代码段的时候,难道不正是对代码段(code段)的执行吗?  理清了上面的关系就好办了,那么如果载入OD后,我们直接对code段下内存访问断点的时候,一定会中断在壳对code段的写入的代码的上面,就像上面的004AE247的这一行。而如果当他把code段的代码全部解压解密完毕了以后,JMP到OEP的时候,我们是不是还可以停在OEP的代码上面呢?而且每按下F9都会中断

4、,因为这时code段在执行中哦!  相信很多人到这里已经明白了,为什么在教程中到达了某一个时候,某一行的时候。牛人们就叫我们对code段下内存访问断点了吧。  而如果你还要继续问我为什么一定要到那个地方才可以下断呢?我难道不可以一开始就下断吗?  正入我上面所说的,如果你在前面下断很可能壳对code段还没解压完毕呢,这时如果你不停的按F9,你将会看到OD的下方不断的在提示你对401000写入中断对401002写入中断对401004写入中断.......如果你不介意按F9到他把正个code段写完的话,我除

5、了同情你的F9以外,没什么其他的意见!  那么我们就没有别更快一点的办法了吗?  有的!那就是我们呼之欲出的两次内存断点办法。  怎么理解两次内存断点呢?  让我来做一个假设吧,假设我是一个壳的。一个EXE文件的有code段,data段,rsrc段.....依次排列在你的内存空间中,那么我会怎么解码呢?呵呵~我比较笨一点,我会先将code段解码,然后再将data段解压,接着是rsrc段......那么聪明的你不难发现,只要你在data断或者rsrc段下内存访问断点,那么中断的时候code段就已经解压完毕

6、了。这时我们再对code段下内存反问断点,不就可以到达OEP了吗?  这里注意上面虽然下了两次内存访问断点,但是本质是不一样的,目的也是不一样的。  1.对data段下内存访问断点而中断是因为内存写入中断,目的是断在对对data段的解压时,这时壳要对data段写数据,但是code段已经解压完毕。  2.对code段下内存访问断点而中断是因为内存执行中断,目的当然就是寻找OEP了。  总结一下:如果我们知道壳在什么地方对code段解压完毕我们就可以使用内存断点,找到OEP。如果不知道,那么我们就依靠2次内

7、存断点去找,如果还不行就用多次内存断点。总之明白了原理在多次的内存断点其实都一样。从这个过程中我们了解的是壳在对区段解码的顺序!1234下一页友情提醒:,特别!  iii.实战  说了这么多,我想大家都越越欲试了吧。  好吧,来弄一个猛壳怎么样:  注:本节实例有些难度,不适合新手练习,新手可以跳过这个实例的学习,等找到合适的实例会补充上来的  本节实例下载:unpackme.rar  这个壳是一个hying的旧版,我们用他来实验一下我们内存断点法。  OD载入以后来到这里0040D000u> 5

8、6          pushesi       //这里0040D001  52          pushedx0040D002  51          pushecx0040D003  53          pushebx0040D004  55          pushebp0040D005  E815010000     callunpackme.0040D11F  根据跟过一次的经验我们将先设置,除int3异常以外忽略其他

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。