Cracking Safe是什么
挑战是找出四个保险箱中每个保险箱预期的正确的5个输入集。在运行二进制安全程序时,您需要一次输入一个猜测,如下所示:
其实,就是输入5次,程序会对输入内容进行判断,只有符合程序要求才能成功,任务就是逆向找到正确的字符串!!!
解题思路
- 反汇编并保存每个可执行文件的输出。
objdump -M intel -D <program's-object-file>
如果您还需要英特尔助记符代码(而不是AT&T助记符代码),您可以使用:
objdump -M intel intel-mnemonic -D <program's-object-file>
例如:objdump -M intel -D s1.dat > s1.asm
- 在您选择的文本编辑器中打开反汇编的程序集文件。
- 搜索“main”函数–它将被标记为“main”。
- 在Main中,尝试了解每条语句或一组语句正在做什么。
核心在于比较语句,也就是CMP XX,XX
,找到CMP语句后,查看附近语句或函数的返回值,即可找到答案!
①运行程序,在main处下断(b main),从导出的asm文件找到CMP语句附近的