Предположим, у меня есть lib xxx.so. Так я получаю имена всех функций и параметров следующие commnad:Способы найти все определения функций в двоичном файле эльфа
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
Но как я могу легко сбросить все функции тела, как следующее в эльфа двоичном:
debug_c_tree()
{
mov eax, edx;
....
....
}
....
Ваш вопрос очень неясен: в любом контексте я могу думать о том, что в файле 'ELF' легко найти имена и параметры функций, найти тела функций * проще *. –
@EmployedRussian Я обновил свой вопрос. –
Вы не получаете параметры с 'C++ filt', вы получаете параметры * types *. А для функций 'C' вы получаете * ничего *. –