BUUCTF——Reverse——reverse3

1、题目

2、工具

  • Exeinfo PE:查壳工具。
  • IDA:是一款功能强大的反汇编工具,用于分析和逆向工程二进制文件。
  • python:编写自动化脚本。
  • base64在线解密网站在线加密解密 - chahuo.com

3、方法

  • 下载压缩包,解压得到一个.exe执行文件。
  • 打开文件,提示输入flag。随便输入,自动退出。
  • 用Exeinfo PE查询该文件是否加了壳。
    • 发现这是一个32位的文件,并且没有壳。
  • 使用32位的IDA将其打开。找到main函数,双击,按F5进行反汇编。
  • 双击main_0函数。
  • 这串的代码的意思是,将用户的输入存储在变量Str中,然后通过sub_4110BE函数处理字符串Str,并将结果存储在Dest中。然后对Dest进行遍历,对其中的每个字符的ASCII码值加上这个字符在字符串中的索引值,然后比较Dest和Str2,相等则输出right flag。所以只要对Str2进行反向处理就可以得到flag。
  • 双击Str2。
  • 把Str2的每一位的ASCII值减去其索引值。python脚本如下:
    • str2 = list("e3nifIH9b_C@n@dH")
      print(str2)
      for i in range(0, len(str2)):
          str2[i] = chr(ord(str2[i]) - i)  # chr():ASCII码转字符;ord():字符转ASCII码
      print(''.join(str2))
    • 运行结果:
  • 接下来就是要看sub_4110BE函数到底是怎么处理Str的。
    • 双击sub_4110BE。
    • 再双击sub_411AB0,其中a1是Str。
      • 可以看到这里不断利用aAbcdefghijklmn数据对一些变量进行赋值。双击aAbcdefghijklmn。
      • 很明显这是一个base64编码表,所以应该是对Str进行了base64加密。
  • 对e2lfbDB2ZV95b3V9使用base64解密。
  • 最终获得flag{i_l0ve_you}。
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恣睢s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值