反汇编测试

实验步骤

编译为32位代码

先使用指令:安装必备库。

sudo apt-get install libc6-dev-i386

安装必备库。

然后可以使用

gcc - g example.c -o example -m32

来将C代码编译为32位可执行程序。

gdb会用到的命令

b main                      //在主函数设置断点。
disassemble                 //反汇编当前函数的机器码。
i r                         //查看当前寄存器的值。
si                          //汇编级的指令,步入下一条(进入函数)汇编代码。
display /i $pc              //通过PC的值指向是下一条机器码的原理,实现显示当前执行的指令。
x /7a addr                  //a 按十六进制格式显示变量,n 表示要显示的内存单元的个数,x用于在 gdb 中查看内存的内容

基础知识

汇编指令和程序帧等知识,查阅参考了博客:
https://www.cnblogs.com/tongongV/p/13713210.html
https://blog.csdn.net/liu_if_else/article/details/72794199
一般而言,eax存的就是返回值。

反汇编测试

编译代码

反汇编测试

反汇编测试

gdb调试结果

反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试
反汇编测试

堆栈分析

反汇编测试

上一篇:Hexagon GDB Debugger介绍(20)


下一篇:Hexagon GDB Debugger介绍(19)