题目描述

菜鸡开始接触一些基本的算法逆向了

Solution

首先在 Kali 下用file观察文件类型,用binwalk看有没有加壳:

003-1.png

这是一个 ELF64 文件,没有加壳。我们使用strings 003 | rg -i "flag"也没有找到合适的信息,根据题目题目的算法逆向关键字,我们打开 IDA 和 Cutter 进行反汇编:

003-2.png

003-3.png

反复对比研究后,我们可以直接写 Python 脚本对字符串进行自动化编码处理:

  1. digit_table = ':"AL_RT^L*.?+6/46'
  2. harambe = 'harambe'
  3. lucky_num = 7
  4. ans = ""
  5. for i in range(0, len(digit_table)):
  6. c = ord(digit_table[i]) ^ ord(harambe[i % lucky_num])
  7. ans += chr(c)
  8. print(ans)

运行结果如下:

003-4.png