手动脱壳简简单单

手动脱壳简简单单

ID:10951212

大小:1.11 MB

页数:9页

时间:2018-07-09

手动脱壳简简单单_第1页
手动脱壳简简单单_第2页
手动脱壳简简单单_第3页
手动脱壳简简单单_第4页
手动脱壳简简单单_第5页
资源描述:

《手动脱壳简简单单》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、手动脱壳简简单单在我们进行逆向分析的时候,通常会遇到有些文件被加密处理过,也就是我们通常所说的被加了壳,这时他的内部结构都已经改变,我们想要继续分析是很麻烦的,所以我们需要把它从壳中分离出来,也就是我们常说的脱壳。现在越来越多的软件都使用了加壳的保护方法,所以脱壳是我们在逆向分析过程中很主要的步骤,掌握它至关重要 壳是最早出现的一种专业加密软件。不同的壳的侧重点也不同,有的侧重于压缩,有的侧重于加密,所以出现了压缩壳和加密壳。压缩壳的特点是减小软件的体积,我们常见的有:UPX,ASPack,PECompack等

2、。加密壳的则侧重于加密,保护强度较大,常见的有:ASProtect,Armadillo,Themida等。第一步寻找OEP★OEP(OriginalEntryPoint):程序的原入口点,就是壳程序在完成了对原程序的还原后,开始跳转到刚还原的程序执行,此时的地址就是入口点的值。1单步跟踪首先,我们运行peid,将我们要检测的程序拖到上面,可以看到它是用aspack加的壳,如图1。 我们运行OD,点击菜单栏中的“文件”→“打开”,把我们需要脱壳的文件加载进来,接着就会弹出一个对话框“模块……你仍要继续分析吗”,如

3、图2,我们选择“否”(不管什么方法脱壳都要按“否”),程序就会停以下的代码处:01013001>90nop0101300260pushad01013003E803000000call0101300B01013008-E9EB045D45jmp465E34F80101300D55pushebp0101300EC3retn0101300FE801000000call0101301501013014EB5Djmpshort01013073我们按F8来跟踪一下,当到了call0101300B这里的时候,记事本自己打开了

4、,我们按Ctrl+F2重新载入文件,再来跟踪,当我们再次遇到call0101300B这一句的时候我们按F7跟进,代码会来到这里:0101300B5Dpopebp0101300C45incebp0101300D55pushebp0101300EC3retn我们继续F8来跟踪,当到了retn一句时,程序返回了,停在了call的下面一句jmp465E34F8上,跳转以后代码来到了下面的这一句call01013015,继续F8,如果遇到程序往回跳,那么我们就在下一句代码处按F4,这样跟踪一段时间以后,我们会看到这样的代

5、码:010133BB689D730001push0100739D010133C0C3retn再F8一下我们的程序就返回了了这里:0100739D6A70push700100739F6898180001push01001898010073A4E8BF010000call01007568到这里,我们就已经到达OEP,单步跟踪法测试成功。2堆栈平衡★   堆栈:一种数据项按序排列的数据结构,只能在一端(栈顶)对数据项进行插入和删除。★   ESP:是CPU中的寄存器,它的值是指向堆栈栈顶的指针。加壳时,必须保证加壳后

6、文件与我们的原始文件的环境现场是不变的,所以在外壳程序运行的时候,就会把刚载入时的各寄存器值保存到堆栈中来保护环境现场,所以我们在它向堆栈保存环境现场时对这时的堆栈栈顶设置硬件访问(写入)断点,当壳程序执行完毕,恢复环境现场时就需要访问(写入)在保存环境现场时的堆栈地址,而我们已经在这里设置了硬件访问(写入)断点,所以程序就会被断下来。在根据堆栈平衡原理,首先要说的就是ESP定律法。在OD中载入我们需要脱壳的文件,注意OD右上角寄存器窗口中的ESP值,刚载入的时候它是红色的,我们按F8跟踪一下,当它再次变红时(

7、数据发生变化),如图3,  这时我们在OD左下脚的指令窗口中输入hr(hw)当前ESP值,按回车,来设置一个硬件访问(写入)断点,如图4,  接着我们按F9让程序运行起来,代码会来到如图5所示的地方, 按只需要在这里按F8跟踪一下,程序就会跳到OEP了,ESP定律法测试成功。有一部分加壳软件在保存和恢复现场环境时会使用pushad和popad指令。那么当我们在程序中遇到popad指令时就说明外壳程序已经开始恢复现场环境,准备返回OEP了,所以我们也可以通过搜索popad指令的方法来寻找OEP了。打开OD把我们要

8、脱壳的文件加载进来,按快捷键Ctrl+f搜索popad指令,如图6, 点“搜索”,在如图7的地方我们找到了一处popad指令,我们选中这一条指令,在上面按F4运行到这里,看这里的代码:010133B061popad010133B17508jnzshort010133BB010133B3B801000000moveax,1010133B8C20C00retn0C010133BB689D7

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

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

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