1625-5 王子昂 总结《2017年11月8日》 【连续第404天总结】
A. 08067CTF-re200
B.
这题我觉得难点在于对程序架构的分析理解,找出各个变量、函数的意义,最终锁定关键函数
比起做题来说更类似对程序的逆向,flag在正常流程中不会出现,但却符合思路。所以虽然做起来很困难,但我觉得这种题对成长更有帮助
首先拿到程序,main函数中没有什么东西
于是从字符串入手,查看一番发现这段加载音频的地方
很明显它是从加密文件中读取音频,然后装载到内存中,通过dword_458b88指针数组来调用
观察可以看到n_gun(n枪声)、bonus(奖励声,实测发现是吃到枪的声音)等等游戏中出现的音频文件
查看这个数组的交叉引用,就能跟到各个地方的处理了:
比如说dword_458B88[4],p_death的调用函数肯定就是死亡处理: