假设我有一个名为 xxx.so 的库。我可以使用以下命令获取所有函数名称和参数:
它将输出以下内容:
但是,我该如何轻松地在elf二进制文件中转储以下所有函数体内容呢?
readelf -Ws xxx.so |c++filt
它将输出以下内容:
711: 00270209 40 FUNC GLOBAL DEFAULT 8 debug_c_tree
7712: 00270231 128 FUNC GLOBAL DEFAULT 8 pp_c_tree_decl_identifier
7713: 00270723 90 FUNC GLOBAL DEFAULT 8 pp_c_init_declarator
7714: 002f546c 0 NOTYPE GLOBAL DEFAULT ABS _edata
7715: 002f546c 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
7716: 002fc9e1 0 NOTYPE GLOBAL DEFAULT ABS _end
但是,我该如何轻松地在elf二进制文件中转储以下所有函数体内容呢?
debug_c_tree()
{
mov eax, edx;
....
....
}
....
ELF
文件中找到函数名和参数,则找到函数体会更加容易。 - Employed Russianc++filt
并不会取得参数,而是获取参数的 类型。对于C
函数,则什么都 没有 获取到。 - Employed Russian