其實問題的本質是對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命令詳解 ...