ESP定律脱壳

原理:

在程序执行过程中,尤其是当函数调用发生时,ESP的值会发生变化,以反映栈上新的栈帧的创建。当函数返回时,ESP的值会恢复到函数调用之前的值,以保持栈的平衡。这就是堆栈平衡定律,也称ESP定律。在加了壳的软件中,程序刚开始加载时,首先会执行解密程序,而ESP栈顶指针会在解密程序执行完毕后,跳回到真正的程序时,有一个大幅度的跳转,这个跳转过程中ESP指针会回到执行解密程序之前的值。根据这一特性,通过跟踪ESP指针的归位时刻,可以找到解密程序的结束位置,进而找到程序的入口点(EP点),从而实现脱壳。

工具准备:

下载x64dbg压缩包(吾爱破解里面有),解压后打开

打开release文件

运行x96dbg.exe后桌面就会有x64dbg和x32dbg。打开X64dbg和x32dbg

选项——>选项,只打开入口断点

脱壳步骤:

用xdbg打开

程序停在了入口地址,按F8

此时ESP改变了,在ESP的位置按右键,选择在内存窗口中转到,然后选内存1

选完后左下角会跳的ESP指向的位置

选定开始的四个字节,右键,断点,硬件访问,4字节,这样就下好了断点。

然后程序继续执行,会停在断点处

此时看断点下方不远处有个jmp语句,应该就是跳转到程序入口(OEP),所以F8继续执行直到在jmp语句跳转

跳转后使用scylla插件

点这个Dump,就会生成一个exe文件,查壳试试是否脱壳成功

显示没有壳了,那么脱壳成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值