在IDA里看伪代码和真正导出`.c`文件,其实是两步。Hex-Rays官方文档写得很清楚,F5是把当前函数反编译到【Pseudocode】窗口里看,Ctrl+F5才是【File】里的【Produce file】→【Create C file】,会把选中的函数或者整个程序输出成`.c`文件。也就是说,先看清当前函数,再决定是局部导出还是整库导出,顺序会更稳。
IDA Pro反汇编Linux程序时,应该先看哪些位置,以及反汇编Linux文件时,ELF段信息又该怎么去利用,这两件事的关键,是不能刚打开文件就直接钻进某个sub函数里面去读。Linux程序多数是ELF格式,文件里面不仅有代码,还有入口点、动态链接的信息、字符串、导入函数、全局变量和段权限。先把这些基础信息看明白,再进入具体的函数,分析效率会高出不少,也不容易把普通库函数、初始化逻辑和真正的业务逻辑混在一起。