3.5 软件逆向分析方法小结
在对软件逆向分析过程中,根据软件运行的内部机制和自身特点,我们
总结了三种通用的分析方法。
一是常数判别分析法,在软件内部存在着常数,这些常
数通常用作产生解密密钥,在分析过程中关注软件内部常最,可以对软件内置数据的
还原。
二是数据结构特征分析法,在软件的逆向分析过程中,存在11些加解密算法和
数据编码的算法,而这些算法t},通常包含具有特征的数据结构,利用这种特征,可以
快速分析软件逆向后的函数行为。
三是软件网络行为特征分析法,根据网络特征行为
分析软件内部结构。在软件逆向分析过程中,以上三种方法具有普遍性,而且能够快
速有效的逆向分析软件内部数据,算法及其运行机理皑}。
常量数据判别分析法的主要原理是由于软件内部都会隐藏一些常量数值或者字
符,而这些内置数据在软件内部算法被直接或者变形处理后作为重要参数使用。凼为
常量的不变性,而且有些数据常量被软件作为关键参数使Hj,这样软件运
行算法和运行行为也可以根据这些常景数据来逆向分析。在分析过程中,软
件向外部发送DNS请求,发送请求的域名为 域名字符以常量的方
式存储在软件内部,这样只需要在软件读取这些域名字符的代码段介入调试断点,再
对断点附近的代码进行分析,就可以分析软件的域名请求的全部行为。在
运行过程中有临时义件缓存名,注册表键值名生成算法,这螋算法均用到奉机磁盘驱
动器中C盘的卷序列号和一个常量数量作为参数来生成文件名称,而在内部DNS解
密算法l h常数OxFABEBABE,Ox3F6CB254和OxAE985D36作为解