I have two kinds of ELF files, built from C++.
ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=5e751e769912aef28bc63b888e5e4904b867a180, stripped
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=1c215d8895277612d3f4332836f48dd45967f69d, stripped
I am completely new to reverse engineering, and I have been experimenting with
nm, but I still need some help.
I want to find function calls to a few functions from a library, without executing the binaries (i.e., static analysis).
With the above commands, I know the symbols are used, but I do not know which arguments are passed to the calls, or how many times the function was called.
Ideally, I would like to get something close to the original source code, e.g.
thelib::TheClass::theFunction("a", b, c);
but I understand this is hard to achieve. I would be content just by retrieving whether the first argument was a string literal (and its value) or something else.
Is this possible with existing tools, such as the above (possibly with specific options), or would I have to implement something of my own?