浅谈UPX脱壳破解之详解ESP定律原理及作用(附带一键脱壳机)

前言:相信只要是了解过脱壳的人就一定知道ESP定律,ESP定律是脱壳破解中常用的方法之一,因其简单,好用,而成为新手最喜欢的方法之一,可你知道它的原理么?今天我给大家说说这个ESP定律的原理及作用(本文只适用于有一点脱壳基础的人群)。
 
 
 
1.ESP定律原理:
所谓的ESP定律其实就是堆栈平衡原理。根据堆栈平衡原理,便可以通过内存断点,在入口点处,断在与入口点相对应的出口点处,而程序的出口点处一般就有个跳转指向OEP。简单地讲,就是根据ESP定律运用的堆栈平衡原理,在程序入口点处(一般是PUSHAD)下一行处下内存断点迅速定位到与入口点相对应的出口点(一般是POPAD),从而到达OEP。这个方法适用于绝大部分压缩壳及少部分加密壳。下面就通过实例来讲解。
 
 
2.示例部分:
本次用的是具有代表性,upx旳壳,我已经打包成了附件,就在文末。载入OD,可以很明显可看到一个PUSHAD,这就是程序的入口点。

接下来我们F8单步,到了关键句的下一行,注意观察寄存器里的数据,此时显示为
EAX 757C33B8 kernel32.BaseThreadInitThunk
ECX 00000000
EDX 0040E8C0 UPX.<ModuleEntryPoint>
EBX 7EFDE000  
ESP 0018FF6C 
EBP 0018FF94
ESI 00000000
EDI 00000000
注意观察寄存器数值的变化, 我们下内存访问断点,F9运行。
蓝域小白学破解
此时od停在了0040EA0F - E9 B826FFFF  jmp UPX.004010CC,玩破解的人都知道这是要到OEP了。观察寄存器数值,可以看到
EAX 757C33B8 kernel32.BaseThreadInitThunk
ECX 00000000
EDX 0040E8C0 UPX.<ModuleEntryPoint>
EBX 7EFDE000

ESP 0018FF8C
EBP 0018FF94
ESI 00000000
EDI 00000000

是不是跟上面的数值一模一样,接下来我们再F8单步,到达了OEP,注意观察寄存器数值
蓝域小白学破解
此时寄存器数值跟上面两处一模一样,仍是
EAX 757C33B8 kernel32.BaseThreadInitThunk
ECX 00000000
EDX 0040E8C0 UPX.<ModuleEntryPoint>
EBX 7EFDE000
ESP 0018FF8C
EBP 0018FF94
ESI 00000000
EDI 00000000
为什么会这样呢,让我们再次回到程序的入口点和出口点看看

入口点

0040E8C0 >  60          pushad // ESP=0018FF8C
0040E8C1    BE 15B04000    mov esi,UPX.0040B015 // ESP=0018FF6C
蓝域小白学破解
0040EA0E    61         popad // ESP=0018FF6C
0040EA0F  - E9 B826FFFF     jmp UPX.004010CC // ESP=0018FF8C
从这得出一个结论,程序入口点将代码暂时储存到寄存器中器中,当程序运行到出口点时将寄存器中的代码取出运行,这就使得入口点处的的寄存器数据与出口点处的的寄存器数据相同,这就是堆栈平衡原理,也是ESP定律原理。


总结:ESP定律原理是堆栈平衡原理,适用于几乎全部的压缩壳,部分加密壳。但不同的壳下内存断点的地方也不一样,需要多多积累经验,并随机应变,切记不可死板 

另外蓝域站长自己写了一款针对UPX一键脱壳程序,理论都可以一键脱,自带修复


【软件名称】 : 蓝域一键脱UPX壳机
 
 
【软件版本】:7.30最新版V6
【软件大小】:2.0M
【支持系统】: 全部系统
【测试系统】:win7
【软件功能】: 多功能
【使用说明】:软件上面详细了介绍如何使用
【下载地址】点我高速下载安全无毒   

如果你喜欢本站资源请记得多多收藏关注蓝域安全网,一个立志于免费培训小白学习
逆向破解的网站!

转载请注明本文链接:http://www.yemogege.cn/nxxg-jswz/347.html

版权保护: 本文由admin所发布,转载请保留本文链接: http://www.yemogege.cn/nxxg-jswz/347.html

免责声明:蓝域安全网所发布的一切渗透技术视频文章,逆向脱壳病毒分析教程,以及相关实用源码仅限用于学习和研究目的
请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除! 

侵权删帖/违法举报/投稿等事物联系邮箱:yemogege@vip.qq.com 网站地图