Linux下objdump二进制文件分析(反汇编常用)

您所在的位置:网站首页 反汇编代码怎么阅读 Linux下objdump二进制文件分析(反汇编常用)

Linux下objdump二进制文件分析(反汇编常用)

2023-10-18 23:24| 来源: 网络整理| 查看: 265

如果在Linux上查看可执行文件、目标文件构成的GCC工具,可以使用readelf或者objdump查看,本篇主要对objdump讲解,想了解readelf朋友,可以看这一篇Linux调试工具之readelf命令

objdump 二进制文件分析

objdump工具用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。

可以使用man查看objdump命令的反汇编功能:

man objdump

OBJDUMP(1) GNU Development Tools OBJDUMP(1) NAME objdump - display information from object files. SYNOPSIS objdump [-a|–archive-headers] [-b bfdname|–target=bfdname] [-C|–demangle[=style] ] [-d|–disassemble] [-D|–disassemble-all] [-z|–disassemble-zeroes] [-EB|-EL|–endian={big | little }] [-f|–file-headers] [-F|–file-offsets] [–file-start-context] [-g|–debugging] [-e|–debugging-tags] [-h|–section-headers|–headers] [-i|–info] [-j section|–section=section] [-l|–line-numbers] [-S|–source] [-m machine|–architecture=machine] [-M options|–disassembler-options=options] [-p|–private-headers] [-P options|–private=options] [-r|–reloc] [-R|–dynamic-reloc] [-s|–full-contents] [-W[lLiaprmfFsoRt]| –dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames] [=aranges,=macro,=frames,=frames-interp,=str,=loc] [=Ranges,=pubtypes,=trace_info,=trace_abbrev] [=trace_aranges,=gdb_index] [-G|–stabs] [-t|–syms] [-T|–dynamic-syms] [-x|–all-headers] [-w|–wide] [–start-address=address] [–stop-address=address]

语法:

语法格式: objdump [参数] [文件]

常用参数说明

-f 显示文件头信息 -D 反汇编所有section (-d反汇编特定section) -h 显示目标文件各个section的头部摘要信息 -x 显示所有可用的头信息,包括符号表、重定位入口。-x 等价于 -a -f -h -r -t 同时指定。 -i 显示对于 -b 或者 -m 选项可用的架构和目标格式列表。 -r 显示文件的重定位入口。如果和-d或者-D一起使用,重定位部分以反汇编后的格式显示出来。 -R 显示文件的动态重定位入口,仅仅对于动态目标文件有意义,比如某些共享库。 -S 尽可能反汇编出源代码,尤其当编译的时候指定了-g这种调试参数时,效果比较明显。隐含了-d参数。 -t 显示文件的符号表入口。类似于nm -s提供的信息

实例: 通过gcc -c test.c编译成目标文件:

#include int main(int argc, char const *argv[]) { printf("hello,程序猿编码\n"); return 0; }

编译成目标文件: 在这里插入图片描述

查看反汇编

objdump -d test.o

在这里插入图片描述 使用objdump命令来反编译一下。objdump工具用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。-d参数表示反汇编ELF文件中可执行的代码(代码段)部分。右边是反汇编的代码块。

在这里插入图片描述 (微信公众号【程序猿编码】)

在这里插入图片描述 (添加本人微信号,备注加群,进入程序猿编码交流群,领取学习资料,获取每日干货)

欢迎关注 微信公众号【程序猿编码】,专注于Linux c/c++ 、Python、Go语言、数据结构与算法、网络编程相关知识,常用的程序员工具。还有每日00:10分之前更新 新闻简报,即刻知晓天下事!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3