反汇编专用工具——objdump

命令

参数:

-d: 将代码段反汇编

-S: 将代码段反汇编的同时,将反汇编代码和源代码穿插显示,编译时需要给出-g,即需要调试信息

-C: 解决Name mangling导致函数名无法看懂的问题

-l: (小写L)插入源代码的文件名称和行号

-j section: 仅反汇编指定的section。可以有多个-j参数来选择多个section

-M: 语法模式,例如att(AT&t),intel

一般用:

objdump -SlC -d audit_version_info.fcgi

参考

Hackers Disassembler 1.06 汉化版是一个非常快速和舒适的免费反汇编工具,玩过破解的我相信Hacker’s Disassembler 会成为你收藏的工具之一。 软件功能特色:对于COM,MZ和PE可执行文件的支持 在JMP和CALL指令和给定的地址,存储地址的历史 认识到引用字符串,对话框和菜单 认识到导入函数的调用 有关导出函数的信息 自定义的热键和颜色,语法高亮 “跟踪模式” 程序和全局变量名称 注释 书签 使用拖放和拖放打开文件 保存文本片段 对话框中的“反汇编模式” 在正常模式下可以反汇编或者整个文件(二进制和MZ),部分路段(PE)或间隔(虚拟地址在相应的字段中指定)。 在跟踪模式下反汇编开始从虚拟地址在现场开始设置,到结束设置地址,或到最接近的指令JMP或沤。然后当控制被转移到块被分解。这种模式便于拆卸的代码的小片段,例如,在RTL函数调用一些辅助功能。请注意,该守则某些部分可以通过反汇编,如果控件使用间接寻址指令(例如,调用[ESI EAX*4])转让有被错过。默认情况下,现场开始包含入口点的地址。 当打开二进制文件,需要指定文件图像(物理地址)的偏移量,图像的大小,对应于图像(虚拟地址)的开头的虚拟地址,进入点的和是否该代码是32位的虚拟地址。     反汇编 最小的字符串长度:具有长度小于给定数量少的字符串是由反汇编忽略,并且不包括在字符串引用列表。此参数用于预防参考其他不属于字符串符号的短序列。
### 如何使用 `objdump` 进行反汇编 #### 基本概念 `objdump` 是 Linux 平台上用于处理 ELF 文件的强大工具之一,能够将二进制文件转换为人类可读的汇编代码。此工具不仅限于简单的反汇编功能;它还提供了丰富的选项来展示各种类型的元数据和辅助信息。 #### 使用实例 为了执行基本的反汇编操作,可以采用以下命令: ```bash objdump -l -x -d gcc_objdump > gcc_objdump.dmp ``` 这条指令会把名为 `gcc_objdump` 的ELF文件的内容解码成汇编语言并保存至 `gcc_objdump.dmp` 文件中[^1]。 如果希望更深入地分析特定部分(例如 `.text` 段),则应考虑加入 `-j` 参数指定节区名称,并且可以通过管道符配合其他实用程序如 `more` 实现分页浏览效果: ```bash objdump -j .text -Sl objtest --prefix-addresses | more ``` 上述命令允许逐屏查看已编译C/C++程序(`objtest`)内`.text`段对应的机器码及其源级映射关系,同时每条指令前加上其内存地址作为前缀[^2]. 当涉及到混合模式下既想要看到原始汇编又不丢失高级语言结构时,则推荐利用带有 `-S` 开关的方式来进行联合显示: ```bash objdump -S test ``` 这使得开发者可以在同一视图里对比检查源代码同最终生成的目标代码间的关系,有助于定位潜在错误位置以及理解优化过程的影响程度[^4]. 除了以上提到的功能外, `objdump` 同样适用于探索静态库(.a)内部组成情况。通过组合运用诸如 `cp`, `ar`, 和 `nm` 等命令,用户可以获得有关链接器脚本、符号定义等方面的知识[^5]: ```bash cp /usr/lib/libpcap.a /home/user/src/ ar t libpcap.a nm -s libpcap.a | less ``` 这些例子展示了如何复制一个标准C函数库副本到个人工作空间,列出其中所含对象模块的名字列表,并借助 `less` 分页器滚动阅览各个成员内的全局/外部可见符号详情.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值