在分析那些经过了授权的C++程序时,很多人会习惯性地把IDA Pro反编译出来的代码当成原始的源码来读,但这样做其实是不对的,反编译器的功能是把机器码重新转换成一种看起来很像C语言风格的伪代码,有了这些伪代码,分析人员再去理解程序里的控制走向、函数相互之间的调用关系,以及数据是怎么被访问的,就会方便很多。不过,IDA Pro反编译C++源代码这件事,它到底能把原来的代码还原到什么样的一个程度,往往并不是一个固定的答案,它跟二进制文件里有没有留下调试用的符号、编译器那边开了什么级别的优化,还有程序当中继承关系的复杂程度,这几个因素都有很大的关系。至于面对反编译出来的结果,要怎样才能把里面那些C++的类结构给辨认出来,一般是得结合着虚函数表、构造函数、this指针,以及成员变量固定的地址偏移量,一步跟着一步地去整理才行。在操作的时候,用来显示伪代码的那个窗口是通过按一下【F5】键来打开的,按完了之后,还可以再用【Tab】键,在伪代码和底层的反汇编指令视图之间,来回地进行切换,非常方便。