buuctf 新年快乐 ESP定律脱壳

本文详细介绍了如何通过x32dbg和IDA进行程序脱壳和分析的过程。首先,识别出程序使用了UPX壳,然后在x32dbg中设置断点,逐步调试找到OEP。使用Scylla插件修复转储并获取导入,最终在IDA中成功分析程序,找到main函数。
摘要由CSDN通过智能技术生成

查壳,发现是upx壳。
在这里插入图片描述
我们可以直接使用脱壳机,这里使用ESP定律手动脱壳。
打开IDA,发现根本分析不了:
在这里插入图片描述
把程序拖入x32dbg,点击选项->首选项:
在这里插入图片描述
至少选择这两个断点,否则不知道停在哪个地方。
在这里插入图片描述
第一行就是pushad。
按F7,进入到下一行,然后发现ESP已经变了。
右击ESP的数字,点击在转储中跟随,
在这里插入图片描述
右击第一行,选择断点,“硬件,存取”,双字。
然后按F9继续运行。
在这里插入图片描述
已经到了popad的位置。
继续调试或者根据经验可以发现,00401280就是OEP。
在这里插入图片描述
点击插件->Scylla,先在OEP填入00401280,然后点击转储。
注意:对于这题的UPX壳可以填入jmp后的地址,但一般来说是填入jmp语句的地址,也即是0040E4……这个地址,否则很容易出现主函数入口识别错误。同时,我们也可以先进入jmp的地址看看,看看jmp后的地方有没有开始系统调用,有的话说明这里就是主函数入口了,否则很可能壳没有脱干净,得继续执行。确认脱壳脱干净了,再重新填入jmp语句的地址。
在这里插入图片描述
然后选择文件存放位置,在这里插入图片描述
会生成一个这样的文件。
在这里插入图片描述
然后在Scylla点击其他->选项,在这里插入图片描述
至少填上和选上这些。
然后先点击IAT自动搜索,再点击获取导入:
在这里插入图片描述
然后点击修复转储,选择
在这里插入图片描述
这个文件。
然后看到生成了这个文件:
在这里插入图片描述
把最后这个SCY拖入IDA分析:
在这里插入图片描述
已经能正常分析了,找到main函数,剩下的就是一眼题。

参考:https://blog.csdn.net/weixin_46287316/article/details/109669066

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值