Bomb lab
# gdb
使用
- Beej's Quick Guide to GDB (based on the very handy gdb -tui mode) (opens new window)
- Two-page x86-64 GDB cheat sheet (opens new window)
常用命令
break
- 添加断点
run
- 运行程序
disas
- 生成汇编代码
info
- 查看所有的寄存器信息
print $register
- 查看特定的寄存器
x $register
和x 0xaddress
- 打印指定地址处的内容
x /4wd $rsp
- 以十进制查看 4 字
- 一个字包含 4 个字节
stepi/nexti
- 运行到下一步
# objdump
的使用
objdump -t bomb
会输出符号表objdump -d bomb
会生成反汇编代码strings bomb
会打印出所有的可打印字符
# 结果
phase_1
Border relations with Canada have never been better.
phase_2
1 2 4 8 16 32
phase_3
- 以下几组数字作为输入均可
0 207
1 311
2 707
3 256
4 389
5 206
6 682
7 327
phase_4
7 0
注意 sar
没有移位位数时,默认为移 1 位
phase_5
9_N567
是其中一个解
phase_6
4 3 2 1 6 5
提示
- 是一个链表的数据结构
- 对输入做验证和变换后,用来调整链表的顺序,确保链表的值按降序排列
- 结合链表的知识,更容易看懂代码
编辑 (opens new window)