openr

利用libbfd获取elf可执行文件的section(节)及symbol(符号)信息

陌路散爱 提交于 2020-08-18 21:43:46
一. 安装bfd库 libbfd(Binary File Descriptor library是binutils中附带的一个C库。 从 http://ftp.gnu.org/gnu/binutils 下载binutils。 我们这里下载binutils-2.23.2.tar.gz 下载后,解压安装libbfd。方法如下: tar -xzf binutils-2.23.2.tar.gz cd binutils-2.23.2/bfd ./configure make make install 安装完成后,可以看到有如下文件生成。 /usr/local/include/bfd.h /usr/local/lib/libbfd.a 二. 使用bfd库需要注意的地方 1. 头文件包含 程序使用bfd,需要包含bfd.h头文件。 但是,在包含bfd.h之前,还需要包含config.h。 即代码中需要有如下形式的文件包含: #include "config.h" #include <bfd.h> 那么这个config.h是什么东东呢?他不是系统的头文件,也不是bfd库的头文件,而是应用程序自己的头文件。 然而用户可能会感到奇怪,我的应用程序源码中并不存在这个config.h文件。那是因为你开发应用时,没有采用GNU autotools。 采用GNU autotools的项目