我正在编写一个脚本来提取二进制文件中的所有函数(由用户编写)。
以下 shell 脚本提取了我的函数名称以及一些以 __ 开头的库函数
readelf -s ./a.out | gawk '
{
if($4 == "FUNC" && $3 != "0" && $7 == "13" && $8 != "main") {
print "b " $NF; //***Updated
}
}' &> function_names;
function_names 文件的输出:
b __libc_csu_fini
b PrintDivider
b PrintFooter
b __libc_csu_init
b PrintHeader
我只想提取我的功能。那么如何检查函数名称是否以 __ 开头,或者任何其他替代方法也非常受欢迎。
更新::
@djf 解决方案工作正常。如果.c
编译的文件也可能包含以 开头的函数__
怎么办?那么,如何区分呢?