CSAPP Bomb Lab 达成
这是我第一个完成的 lab, 这篇博客其实是边做边记的解决过程改的, 所以比较简略, 其他 Lab 的记录博客会详细一点, 这篇博客以后有时间也会补充
Phase 0x1
Border relations with Canada have never been better.
根据调用约定, gdb 直接读 phase_1()
的 $rdi
即可.
Phase 0x2
1 2 4 8 16 32
利用断点跳到 read_six_number
后, 发现核心代码 add %eax %eax
, 即不断 \(\times 2\)
Phase 0x3
5 206
rsp+8
, rsp+12
分别是输入的两个数, int
占四字节.
发现一堆 mov
, jmp
, 里只有第五个的差能整除
\(8\) 并且 mov
过去的值是
206
(最后几行是核心代码 cmp 0xc(%rsp), %eax
)