簡體   English   中英

在靜態 GCC 編譯的 C 程序中獲取所有函數的詳盡列表(除了 .c 文件中使用的函數)

[英]Get an exhaustive list of all the functions (other than the functions used in the .c file) in a statically GCC compiled C program

我正在進行二進制分析。 為此,我需要排除添加到我們靜態編譯的 C 程序中的所有功能。 我只想要 static C 文件中存在的函數。 但是分析工具報告除了.c文件中存在的函數之外,編譯器添加的所有其他函數。 幾個例子是:

__open64
__pthread_enable_asynccancel
__pthread_disable_asynccancel
__stack_chk_fail
__fortify_fail
__libc_message
abort
sigprocmask
pthread_sigmask
...

這些是二進制分析中main()的大量函數跟蹤列表中的一些函數(使用控制流圖)。

我不知道這些函數屬於哪個標頭。 它們是 libc 的一部分嗎? 我試圖在 gdb 中打開一個可執行文件,並試圖在加載 libc 的地址范圍內找到一些 function 名稱。 (為此,我使用動態鏈接而不是 static 來顯式檢查 libc 包)我找不到很多。 是否有任何手冊頁包含所有這些功能的詳盡列表? 類似於包含系統調用列表的 linux 手冊頁。

提前致謝。

你問了一份詳盡的清單。 也許您可以使用 glibc 和 gcc 源代碼本身來發現您需要什么?

github 是另一個很好的資源,在 github 中搜索 __pthread_enable_asynccancel 和 __fortify_fail,ZBF215181B5140522137B3D4F6B73544 的標識符列表非常詳盡。

wget http://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.gz
tar xzf glibc-2.36.tar.gz

grep -r libc_hidden
. . . a very long list . . .
./glibc-2.36/nptl/cancellation.c:libc_hidden_def (__pthread_enable_asynccancel)

wget https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz
tar xJf gcc-12.2.0.tar.xz 

grep -r __fortify_fail
. . . a lot of results . . .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM