BUU-Reverse:新年快乐

首先,看这个程序是多少位
在这里插入图片描述
由上图可以知道,这个程序是32位的,同时它还有一个UPX的壳。
所以我们要进行脱壳的操作,这里我用OllyDug进行手动脱壳

将该程序拖入OD,我们要寻找popad,并且在它的第一个jmp那里下一个断点(f2),这样可以防止这个程序壳的干扰,也便于找到我们真正程序的那个头。
在这里插入图片描述

也许你会疑惑,这个红线是什么意思
在这里插入图片描述
这个红线是将要执行的操作,比如按f8(单步调试),它就跳转到0040E484那一步去。下图是跳转后的位置
在这里插入图片描述

但如果这样,一直调试下去,直到程序结束,我们也不会找到真正程序的头。
所以一开始我们应该按f9将这个部分跳过,直接到我们的断点处
在这里插入图片描述
然后我们再单步调试(f8),之后就到了我们真正程序的头了
在这里插入图片描述
然后在此处进行脱壳
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个时候就脱壳完毕了
这个时候进入ida,找flag
进入后,直接shift+f12,查看字符串
在这里插入图片描述
找到函数按X,点OK
在这里插入图片描述
在选择一段,f5转换位伪代码,由下图所示
在这里插入图片描述
如果输入str1和st2相等,即可正确的正确答案。
所以flag就为HappyNewYear!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值