17.3 本章小结

本章的内容不难,主要讲解了汇编环境和C语言环境的联合编译过程。读者需要具备一定的逆向分析功底,否则将无法定位到关键的代码处,联合编译也就成了一句空话。如果觉得多个obj的静态编译方式不适合,也可以参考对应的编译链接选项,做成dll的共享编译方式。很多时候,有些反汇编代码无法直接编译成功,比如异常处理、函数的嵌套等,这时需要读者先分析目标程序的功能结构,然后酌情对代码做出修改,使其满足当前环境。如果需要重建的代码中存在C++的异常处理部分,那么将异常分配过程全部照搬过来明显不合适。这种情况的处理办法有多种,先分析异常处理中是否有关键的不可或缺的代码,如果有,则修改流程使得关键代码一定被执行,否则可以考虑将异常的注册函数替换为自己的异常函数,或者直接去掉异常的注册和处理代码,然后在上级调用函数中补充实现适合自己的异常处理过程……应对的办法很多,需要分析者酌情对待。