其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题。 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接特定的so库,发现用nm [file]找不到“XXX”函数符号,结果用readelf -s ...
其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题。 事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接特定的so库,发现用nm [file]找不到“XXX”函数符号,结果用readelf -s ...
readelf:-h:文件头-S:段表-s:符号表-d: 查看依赖库-p:查看某个段内容,非常重要。如:readelf -p .comment libc.so (通过-p对只读段的查看就可以替代strings命令) objdump:-d:反汇编(objdump我基本只用这一个)-h:段表 ...
最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景 也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可执行文件 ...
ELF文件包括: (1)可重定位的目标文件 (2)可执行的目标文件 (3)可被共享的目标文件 可以用file命令来看目标文件是否是ELF文件 在linux下,用readelf来看ELF头部或者其它各section的内容,用objdump来对指定的内容(.text ...
GCC把C语言源文件('.c')编译成汇编语言文件('.s'),汇编器把汇编语言文件翻译成目标文件('.o'),最后由链接器链接所有的目标文件和有关的库生成可执行文件('a.out')。 如打 ...
原文链接 编译 nm:列出目标文件中的符号。 objdump:显示目标文件中的详细信息。 readelf:显示关于 ELF 目标文件的信息。 参考 清单 1. hw.c 程序 #include <stdio.h> ...
Date: 2018.7.18 1、参考: https://www.jianshu.com/p/863b279c941e https://sourceware.org/binutils/docs/binutils/nm.html 2、Linux中目标文件解析的三个命令 ...
有时候我们需要查找可执行程序的依赖的动态库,我们可以使用 readelf ,比如这样》 如果使用ldd,可参考 http://blog.csdn.net/csdn66_2016/article/details/78063771 Linux:ldd命令详解 ...