函数调用分析与反汇编,是在Linux环境下研究二进制程序时通常要依次完成的工作,具体包括以下几个步骤:

准备二进制文件:
挑选适用的工具:
objdump、radare2、Ghidra、IDA Pro等,以查看并分析二进制文件中的汇编代码。objdump通常安装Linux发行版时便会附带它,因为它是GNU Binutils的组成部分。radare2属于开源逆向工程框架,具备强大的反汇编及调试功能。Ghidra和IDA Pro图形界面和更高级的分析功能均由它们提供;虽然是商业软件,但也有免费版本或试用版。载入二进制文件:
objdump可以执行objdump -d binary_file以反汇编整个文件。定位函数调用:
call(用于x86架构)。判断函数签名与参数:
追踪控制流:
使用调试器:
gdb)观察函数调用之前与之后的寄存器、内存状态,采用单步方式执行代码。联系源代码分析:
记录并研判结果:
需要注意,逆向工程可能牵涉法律与道德问题。开始逆向工程前,应确认自己拥有分析目标二进制文件的合法权利,并遵守全部适用的法律和规定。