免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: qtdszws
打印 上一主题 下一主题

让gdb像objdump一样反汇编,显示对应的机器码列,该如何做? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-10-27 00:47 |只看该作者
(gdb) disas  /r exit1
Dump of assembler code for function exit1(int):
0x08048860 <exit1(int)+0>:         e9 bc ff ff ff        jmp    0x8048821 <exit_stub(int)>
0x08048865 <exit1(int)+5>:         18 c7        sbb    %al,%bh
0x08048867 <exit1(int)+7>:         04 24        add    $0x24,%al
0x08048869 <exit1(int)+9>:         fe 8a 04 08 e8 ae        decb   -0x5117f7fc(%edx)
0x0804886f <exit1(int)+15>:         fb        sti   
0x08048870 <exit1(int)+16>:         ff        (bad)  
0x08048871 <exit1(int)+17>:         ff c9        dec    %ecx
0x08048873 <exit1(int)+19>:         c3        ret   
End of assembler dump.
(gdb)

确实可以,只是显示的汇编代码格式有点乱,不如objdump好看

论坛徽章:
0
12 [报告]
发表于 2010-12-05 21:00 |只看该作者
学习了

论坛徽章:
0
13 [报告]
发表于 2010-12-06 23:56 |只看该作者
/r 的PATCH不是我写的么?

论坛徽章:
0
14 [报告]
发表于 2012-03-24 23:24 |只看该作者
本帖最后由 yjf_victor 于 2012-03-24 23:26 编辑

键入“disassemble  函数名”即可看到函数的反汇编,如果要与机器语言对应,就用“disassemble  /r  函数名”。

还有,那个gdb反汇编的的汇编代码默认的是AT&T汇编。如果不习惯,可以键入“set disassembly-flavor intel”,就能显示为Intel汇编。如果又想回到AT&T汇编,那么可以键入“set disassembly-flavor att”,设置为AT&T汇编。

论坛徽章:
0
15 [报告]
发表于 2012-03-24 23:41 |只看该作者
机器语言对照AT&T汇编


机器语言对照Intel汇编

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
16 [报告]
发表于 2012-04-01 11:52 |只看该作者
teawater_cu 发表于 2010-12-06 23:56
/r 的PATCH不是我写的么?



    你是──"两个redhat的大牛,一个google大牛,一个ibm大牛,一个cs大牛"啊

论坛徽章:
0
17 [报告]
发表于 2012-08-18 17:55 |只看该作者
/r 这个选项应该很容易实现的,因为disassemble是通过bfd来实现对二进制文件读取的,能把汇编输出,那他肯定是知道对应的二进制文件内容的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP