CTF 逆向题 shy

       这个题目是攻防大赛的逆向题,是upx的壳,由于当时手头的工具无法脱壳,所以这题也就跳过了。经过学习了手工脱壳后,感觉可以拿这个题练练手,顺便写一个writeup。

      首先查壳,丢到ExeinfoPE里面看一下,确定是upx壳

于是丢到OD里面进行脱壳处理,由于是压缩壳,跟踪起来比较麻烦,我选择了个偷懒的办法,下一个api访问断点

即:VirtualProtect ,运行3次F9后就跑飞了,于是在2次运行后,单步跟踪,到OEP

使用OD自带的插件进行脱壳,注意基址和OEP的关系,计算好后填入

然后点击脱壳,双击发现不能运行。

这个问题估计是重定向造成,于是修复一下重定向表的数据。

保存后,再次运行可以正常跑起来了

再次用OD载入,发现入口地址不是OEP

按说是已经解密完成了,于是我定位到OEP (0x1072940)一看究竟。

确实已经解密,那么为了方便调试,我直接用OD改一下入口代码就可以实现了。

然后把修改完毕的程序,重新保存到文件,由于有重定位会有下图的提示,点击 是 ,然后右键保存一份dump0.exe

继续,OD载入dump0.exe 发现修改成功,可以直接跳转到OEP行,然后单步跟踪,到输入后,发现后面的代码是个加密处理的代码,于是丢到IDA里面看一下这块对应的反编译代码。

 

buf 就是用户输入的字符串,if ( *(&v4 + j) != v79[j] )   这个就是关键的比较,那么V79[]就应该是异或后的结果,也就是ben本题的密钥,于是在OD中定位值:6ljh,!;:+&p%i*a=Sc4#pt*%

接下来就简单了,直接把这个密钥输入,然后再次定位到这块就能得到flag了

最终得到flag:flag{cb7670ab-c597-4b17}   输入到shy.exe 验证一下 : )

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值