CSAPP bomblab
Intro
- CSAPP里传奇的实验
- 通过汇编能力拆除二进制炸弹,拯救世界!
phase_1
-
通过
strings_not_equal
想到这里有个字符串判断 -
x/s 402400
得到字符串为Border relations with Canada have never been better.
-
phase_1就是上述字符串
phase_2
-
通过
read_six_numbers
得到phase_2是六个数字 -
add eax, eax
可见每次取出的比较数字翻倍,第一个数字为1 -
phase_2就是
1 2 4 8 16 32
phase_3
-
阅读反汇编,可知读取两个数字
-
第一个要比7小
-
第二个根据第一个有不同的分支答案
phase_4
-
第四题的func4是一个递归函数
phase_5
-
通过内存查找关键字符串
flyers
-
x/s 0x4024b0
查找另一个敏感字符串maduiersnfotvbylSo you think you can stop the bomb with ctrl-c, do you?
-
输入的六个字母的末4位正好是所取字符串
flyers
的索引0x9 0xF 0xE 0x5 0x6 0x7
phase_6
-
输入六个数字,用7减去六个数字得到六个索引
-
是一个链表,要使链表的内容从大到小排列
答案
1 | Border relations with Canada have never been better. |
secret_phase
-
彩蛋!一棵隐藏的二叉树
1 | Border relations with Canada have never been better. |
CSAPP bomblab