使用 readelf 分析 so 文件:ELF 结构解析全攻略

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/

readelf 介绍

readelf 是 GNU Binutils 提供的一个命令行工具,专门用于读取 ELF(Executable and Linkable Format)文件的结构信息。

readelf 文档:https://man7.org/linux/man-pages/man1/readelf.1.html

GNU Binutils

GNU Binutils(GNU Binary Utilities)是一套由 GNU 项目维护的二进制文件处理工具集,主要用于编译、链接、反汇编、调试等场景。

它是 GCC(GNU Compiler Collection)的重要配套组件之一,处理从编译生成的目标文件到最终可执行文件的各个阶段。

主要工具:

工具 作用
as GNU 汇编器(GNU Assembler),把 .s 汇编代码编译成 .o 目标文件
ld GNU 链接器(GNU Linker),把多个 .o 文件和库打包成可执行文件或共享库
ar 归档工具(创建/修改 .a 静态库)
nm 显示符号表(Symbol Table)
objdump 显示目标文件内容(反汇编、节表、符号、重定位等)
objcopy 复制并转换目标文件格式(可用于提取或删除节)
readelf 专门查看 ELF 文件结构(文件头、节表、符号等)
strip 删除二进制文件中的符号信息(瘦身/混淆)
strings 搜索二进制文件中的可打印字符串
size 显示目标文件中各段的大小(text/data/bss)
ranlib 为 .a 静态库生成索引(方便快速链接)

Windows 下使用 readelf

虽然 readelf 工具本身是为 Unix-like 操作系统设计的,在 Windows 上通过 WSL 使用它。WSL 允许你在 Windows 上运行 Linux 发行版,并且可以在其中使用 readelf 工具。

打开 PowerShell 以管理员身份运行,并执行以下命令启用 WSL 并安装 Ubuntu 系统

wsl --install -d Ubuntu

然后设置用户账户和密码。

word/media/image1.jpeg

通过 wsl 命令进入 Ubuntu 系统。

(base) PS E:\> wsl
wsl: Unknown key 'wsl2.memory' in /etc/wsl.conf:5
wsl: Unknown key 'wsl2.swap' in /etc/wsl.conf:6
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
wsl: Processing /etc/fstab with mount -a failed.
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/cyrus/.hushlogin file.
cyrus@*:/mnt/e$ cd /mnt/d/Python/anti-app
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值