在 ELF 文件中查找函数调用(带参数)

逆向工程 C++ 小精灵 静态分析
2021-06-30 05:18:45

我有两种由 C++ 构建的 ELF 文件。

.so 文件:

ELF 64 位 LSB 共享对象,x86-64,版本 1 (GNU/Linux),动态链接,BuildID[sha1]=5e751e769912aef28bc63b888e5e4904b867a180,剥离

和可执行文件:

ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接,解释器 /lib64/ld-linux-x86-64.so.2,用于 GNU/Linux 2.6.32,BuildID[sha1]=1c215d8895277612d3f44382864df6df6d , 剥离

我对逆向工程完全陌生,我一直在试验objdump,readelfnm,但我仍然需要一些帮助。

我想从库中找到对一些函数的函数调用而不执行二进制文件(即静态分析)。

通过上面的命令,我知道使用了符号,但我不知道将哪些参数传递给调用,或者函数被调用了多少次。

理想情况下,我想得到一些接近原始源代码的东西,例如

thelib::TheClass::theFunction("a", b, c);

但我明白这很难实现。我只要检索第一个参数是字符串文字(及其值)还是其他东西就满足了。

这是否可以使用现有工具(例如上述工具)(可能具有特定选项),或者我是否必须实现自己的某些东西?

0个回答
没有发现任何回复~