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
2
3
4
5
6
7
Border relations with Canada have never been better.
1 2 4 8 16 32
0 207
7 0
ionefg
4 3 2 1 6 5

secret_phase

  • 彩蛋!一棵隐藏的二叉树

1
2
3
4
5
6
7
8
Border relations with Canada have never been better.
1 2 4 8 16 32
0 207
7 0 DrEvil
ionefg
4 3 2 1 6 5
22

作者

huayi

发布于

2023-11-13

更新于

2023-11-13

许可协议