参考链接

1.基本信息探查:

1.EXEinfo:

无壳,64位,ELF文件格式
notion image

2.运行一下:

输出了一个茶杯,这因该是官方给的一个提示,这个题可能用的是TEA加密
然后就是输出了一个字符串:“Please input:”
notion image

2.IDA分析:

1.分析main函数:

题目的思路还是很清晰的,接收flag,判断flag长度是否为35,然后在25行调用一个函数进行flag的加密,最后在26行处调用函数进行flag验证。
修改后的主函数

2.加密函数分析:

一开始看到这玩意儿有点蒙,我主要疑惑的地方有两个,第一处是既然是tea的话一定会有Delta值,但v6处按道理应该是作为sum累加delta但是这里是减等0x61C88647 ,第二处是37的循环,以目前的加密来看不是简单的TEA而是XXTEA,那么这个循环的次数应该是rounds = 6 + 52/n ,结果这里的数可以说是巨大,下面主要分析这两处:
  • 第一处:
    • 先看v6的类型为unsigned int ,也就是说v6占32位,然而把0x61C88647 放入计算器就可以发现
      notion image
      其实最终存进v6的值就是 0x9E37 79B9
  • 第二处:
    • 弄懂了第一处,第二处也就好解释了,这里应该要循环7次,而把v6的值代入可以发现正好也是7次
下面列出改变变量后的加密函数:
现在就差一个加密后的值了,这个值可以去比较函数里面找一找。

3.check函数分析:

加密后的数据在dword_5020 ,双击过去提取里面的数据。

3.EXP:

notion image
hgame{l00ks_1ike_y0u_f0Und_th3_t34}