DDCTF2019reverse1_final逆向教程

0x1,首先查壳:

是个常见的压缩壳,用手动脱壳即可。

0x2,OD调试程序:

1,最重要的是跳到函数加密的位置,根据这个压缩壳的特点,知道前面是一直的循环,让你找不到程序入口的位置,这里只使用F4跳到鼠标位置就好:

一步步到向下到想要的位置

 

这个位置是调用的位置,我们F7,进入看看;

2,在一步步走

再次调用位置;

3,其实我们已经知道程序入口,手动脱壳

 

然后放在IAD中;

4,

情况很明朗了,进入加密函数;

5,

进入加密

看来是替换加密;

而下面的字符串应该是密码表;

6,我们知道加密后的密文在main函数中是DDCTF{reverseME},那么们可以来加密函数倒推,有这个密码表的地址减去一个常数,就好是,现在我们由密文反推即可;

data = [0x403052,0x403052,0x403053,0x403042,0x403050,0x40301B,0x403024,0x403031,0x403020,0x403031,0x403024,0x403023,0x403031,0x403049,0x403051,0x403019]
flag = ""
for x in range(len(data)):
    flag+=chr(data[x]-0x402ff8)
print "DDCTF{"+flag+"}"

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值