一、逆向及Bof基础实践说明
需要掌握的知识点
1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码
- NOP——空操作——“0x90”
- JNE(Jump if Not Equal)——条件跳转——“0x75”
- JE(Jump if Equal)——条件跳转——”0x74“
- JMP——无条件跳转——“0xeb”(短跳转)、“0xe9”(近跳转)、"0xEA"(远跳转)
- CMP——比较指令——“0x39”
相关用法和功能可以参考相关博客等资料汇编指令和机器码的对应表
2.掌握反汇编与十六进制编程器
- 反汇编命令:
objdump -d filename
在实验中,我们使用的命令是
objdump -d pwn1 | more
"objdump"——object dump——项目转储
"-d"——disassemble——反汇编
"|"——管道符
"more"——分页显示
- 十六进制编程器
官方定义:“十六进制编辑器,用来以16进制视图进行文本编辑的编辑工具软件”
在我们的实验过程中,实际上我们使用vi打开文件,输入%!xxd将文件改为16进制显示,%!xxd -r
将文件改回ASCII码。并且使用Perl语言来形成包含十六进制的键盘输入perl -e 'print "xxx"' > input
。