x64dbg手脱壳

本文详细记录了一次使用x64dbg进行逆向工程的过程,通过设置断点和分析寄存器变化,找出入口点(OEP)。作者讨论了如何确定正确的OEP,强调了在ESP寄存器首次变化后进行dump的重要性,并展示了从不同OEP dump后的反汇编差异。最后,作者提醒找到准确的OEP对于成功脱壳至关重要。
摘要由CSDN通过智能技术生成

第一次比赛上体验手脱,记录一下,64位程序,x64dbg载入

 

断点里找入口,跟进去,423DC0是入口

 

F9让程序执行到这里

再F8,发现只有RSP寄存器的发生变化,符合ESP脱壳定律

 

在RSP这里右键,选择在内存窗口中转到

在内存窗口右键选择4字节的硬件断点 

 

 断点下好以后F9运行,跳到423FD5处,断在了几个pop之后

 

往下边看看,发现有一个大跳,在423FE5处下断点,F9运行过去然后F7

这里有一个点我比较疑惑,网上的ESP定律dump的OEP都是jmp到的地址,比如应该是401500,可是这里直接从423FD5 dump也是可以的,有些疑惑

 

 

这里展示一下两个分别选择两个OEP dump 后的效果

从423FD5 dump:

IDA加载进来是有些问题的,而且找不到main函数

但是可以通过string窗口搜索程序关键字然后交叉引用到主函数

 

 然后就可以很清楚的看到加密逻辑了

从401500 dump:

可以看到程序加载进来是直接到main函数的,很正常

 

总结一下,找到正确的OEP还是很重要的,不正确的OEP可能程序也能进行反汇编,但是可能会有问题

还需要注意脱壳时程序必须动调运行到ESP第一次变化以后的位置才能进行dump,否则就算OEP找到了也脱不成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值