软件逆向分析方法小结

3.5 软件逆向分析方法小结在对软件逆向分析过程中,根据软件运行的内部机制和自身特点,我们总结了三种通用的分析方法。

一是常数判别分析法,在软件内部存在着常数,这些常数通常用作产生解密密钥,在分析过程中关注软件内部常最,可以对软件内置数据的还原。

二是数据结构特征分析法,在软件的逆向分析过程中,存在11些加解密算法和数据编码的算法,而这些算法t},通常包含具有特征的数据结构,利用这种特征,可以快速分析软件逆向后的函数行为。

三是软件网络行为特征分析法,根据网络特征行为分析软件内部结构。在软件逆向分析过程中,以上三种方法具有普遍性,而且能够快速有效的逆向分析软件内部数据,算法及其运行机理皑}。

常量数据判别分析法的主要原理是由于软件内部都会隐藏一些常量数值或者字符,而这些内置数据在软件内部算法被直接或者变形处理后作为重要参数使用。凼为常量的不变性,而且有些数据常量被软件作为关键参数使Hj,这样软件运行算法和运行行为也可以根据这些常景数据来逆向分析。在分析过程中,软件向外部发送DNS请求,发送请求的域名为 域名字符以常量的方式存储在软件内部,这样只需要在软件读取这些域名字符的代码段介入调试断点,再对断点附近的代码进行分析,就可以分析软件的域名请求的全部行为。在运行过程中有临时义件缓存名,注册表键值名生成算法,这螋算法均用到奉机磁盘驱动器中C盘的卷序列号和一个常量数量作为参数来生成文件名称,而在内部DNS解密算法l h常数OxFABEBABE,Ox3F6CB254和OxAE985D36作为解密辩钥的生成。在软什调试中,根据这些常数能够准确把握软件内部算法和行为特征,从而能够对软件.},的关键算法和运行行为进行有效分析[22】。软件自身也会用到一些公开的算法,在软件逆向分析t I-,我们发现其使用了变形Base64编码c23KT法,RC4加密算法[241,SHA-I散列算法l25I和随机数产生算法。这样的算法都会有白己的特征数据结构,在变形Base64编码算法rf1,软件改变其字^苛:表为"abcdefghij klmnopqrstuvwxyz-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_",Base64编码算法特怔为以3个字IJ为'组。按顺序排列24位数捌,再把这24位数据分成4组。在软件调试中,RC4算法明最特征为算法初始化一个8*8的S盒,然后对S盒进行置换。SHA-1散列算法也具有一系列的常数,而且代码的循环结构和循环次数都具备特征数据结构。软件中使用的随机数产生算法均使用了时问作为随机数产生的种子。在软件调试过程中,我们只

需要分析清楚这些算法的特征数据结构,就能够确认其算法功能,从而确定具体的算法。在软件调试中发现软件使用第j方密码算法库,使用标准密码算法。因此在软件逆向分析调试小识别这些密码学算法能够提高逆向分析效率,更好把握软件内部结构。软件是一'款嘲络代理软件,因此在软件调试中可以利用其刚络行为特征进行逆向分析。软件在和外部嘲络通信中多使用UDP的连接方式,在这种网络协议中使用的特征函数为send()/receive()。软件采用多线程技术编程方式,由一个线程向外部发送数据,另外一个线程接受服务器端传送的数据,在软件调试中,只需要在两个函数处植入调试断点,就口J'以歇得软件放送和接受的所有数据。在软件与web服务器建立连接后,需要从服务器r{-凄取网页内容,用到的特征函数为Internetreadfile()。这些特征函数都是网络编程中使用的标准函数,而软件实现网络行为均州到这些晒数。根据软件网络行为特征进行分析,能够有效分析软件内部结构和功能模块l22】。根据上述分析方法,对较件进行逆向分析,分析表明软件通信过程中需要获取代理服务器IP主要通过查询内置DNS,查询docs,google中个人主页还有'些特定的代理服务器IP等手段。

Powered by Zoundry

你可能感兴趣的:(软件,的,分析法)