gdb反汇编
来源:互联网 发布:网络教育统考严吗 编辑:程序博客网 时间:2024/06/06 12:24
gdb反汇编
好吧,我承认我对gdb只是一知半解,学无止境
1、disassemble反汇编命令:
disassemble 是以反汇编清单的形式输出内存的内容,表示的格式由命令set disassembly-flavor确定
1.1不带参数
默认的反汇编范围是 所选择帧的pc附近的函数
1.2单个参数
就是pc, 当然也可以是函数名,因为函数名 也是一个 地址; 这样范围就是该pc附近的函数
:<<
disass func_name
>>:
1.3两个参数
反汇编一段内存地址, 第1个参数是起始地址,第2个是终止地址
:<<
(gdb) disas /r 0x401365,0x401370
Dump of assembler code from 0x401365 to 0x401370:
=> 0x00401365: 0100 add DWORD PTR [eax],eax
0x00401367: 0000 add BYTE PTR [eax],al
0x00401369: 44 inc esp
0x0040136a: 134000 adc eax,DWORD PTR [eax+0x0]
0x0040136d: 8b 4424 1c mov eax,DWORD PTR [esp+0x1c]
End of assembler dump.
>>:
1.4 set disassembly-flavorintel
将汇编指令格式 设置为intel格式,默认是att
(gdb) show disassembly-flavor
The disassembly flavor is “att”.
2、info命令:查看内容
2.1命令info frame,info args和info local分别显示堆栈帧,函数参数和局部变量的内容,info break显示断点编号。
2.2info line 命令来映射一个源码行到程序地址,然后使用命令disassemble显示一个地址范围的机器指令。
:<<
查看main函数的 开始和结束地址
(gdb) info line main
Line 34 of “rank.c” starts at address 0×804847f
andends at 0×8048493 .
>>:
info line会修改 x/i 命令的默认的起始地址
:<<
(gdb) info line *0×804847f
Line 34 of “rank.c” starts at address 0×804847f
andends at 0×8048493 .
>>"
3、x用来查看返回反汇编指令
x/3i $pc
显示pc开始的3条指令
相关链接
1、GDB内幕(http://gnuarm.org/pdf/gdbint.pdf):一本关于GDB内幕的极好的指南。当需要改善源程序时,它非常有用。
2、用ptrace追踪进程(http://linuxgazette.net/issue81/sandeep.html):一篇关于在Linux中使用最简单的追踪程序中的例子来进行追踪的论文(在FreeBSD中的情形完全不同)。
3、在源程序中修正漏洞(http://www.linux-mag.com/2004-04/code_01.html):一篇关于利用源代码分析进行早期查错的论文。
4、使用CTrace库(http://ctrace.sourceforge.net):一篇关于使用该库来调试多线程应用程序的论文。
- gdb反汇编小结
- GDB 反汇编
- GDB反汇编
- gdb反汇编
- gdb反汇编
- gdb 的反汇编
- gdb中反汇编调试
- gdb 反汇编.c程序
- gdb在mac上的反汇编
- 设置gdb反汇编语法为intel
- 用GDB反汇编调试linux内核
- gdb 的反汇编对应列出源码
- LINUX下GDB反汇编和调试
- LINUX下GDB反汇编和调试
- 一个简单程序的 gdb 反汇编 分析
- 反汇编与GNU GDB工具的使用
- LINUX平台可以用GDB进行反汇编和调试。
- Linux平台可以用gdb进行反汇编和调试。
- 数据库集群的分类
- The Google File System中文版
- struts2部署问题:找不到自定义struts-default.xml文件
- MySql截断表
- Java 自定义注解
- gdb反汇编
- 再议libcurl编程
- VS2010开发DLL
- soureTree使用
- asp.net三元运算符嵌套用法
- 日期选择器:jquery datepicker的使用(转)
- IOS stretchableImageWithLeftCapWidth
- expandableListView
- prepareStatament和Statement和callableStatement的区别