【攻防世界逆向 BabyXor】

本文介绍了在攻防世界逆向挑战中应用ESP定律法手动脱壳的过程,通过OD和IDA分析,理解并解决了一个不知名壳的程序。尽管在脱壳时遇到一些小问题,但并未影响反汇编和解题。文章提供了代码示例,展示了如何利用脚本或动态调试来解决异或操作的题目,并强调了手动脱壳在面对复杂壳时的挑战。
摘要由CSDN通过智能技术生成

前言

攻防世界逆向刷题,此题主要学习ESP定律法脱壳,一开始脱壳后程序有点问题,无法运行,不知道是不是后续哪些步骤没有完成,但是不影响反汇编,代码逻辑也没那么复杂,所以不影响做题,看了别人的WP都是动态调试出的结果,问题出在了脱壳时我没有勾选掉重新输入表,虽然不知道为什么。

一、题目分析

在这里插入图片描述在这里插入图片描述查壳发现不知名壳,IDA载入程序什么也看不到,没办法用我的万能脱壳工具,这里学习使用ESP定律法进行手动脱壳。
OD载入程序,f8一次:
在这里插入图片描述在esp寄存器这里右键设置硬件断点,然后f9运行,程序会被断在刚才下的断点的位置:
在这里插入图片描述然后在这个位置利用ollydump插件脱壳,保存:
在这里插入图片描述IDA重新载入程序:
在这里插入图片描述看到main()函数,整体函数的逻辑是很简单的,三个函数都是异或操作,而且与输入无关,唯一比较难理解的就是
在这里插入图片描述这里看了别人的WP,了解到这里是在获取输入,相当于实现了getc,直接写脚本或者动态都可以出结果:
动调的话在调用最后一个拼接函数前下断点,栈里面可以看到:
在这里插入图片描述写脚本的话下面给出示例

二、代码示例

key1 = [0x66,0x6D,0x63,0x64,0x7F
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值