逆向分析程序的时候往往会遇到一些加密解密算法,大家也都知道加密解密算法基本都是公开的,源码满天飞,只要识别出来是什么算法,在根据程序的要求做一些可能的修改就完成了,最重要的就是基础算法的识别,下面就简单介绍一些比较实用的算法识别的小技巧
算法的什么消息摘要大家都搜得到,这里的特点主要是逆向分析时的小技巧哦
Hash算法:
1.MD5 (用PEID可看到MD5)
MD5的源码满天飞,最好识别的一个特色就是,MD5算法需要初始化4个32位的常数,用16进制表示
A=01234567h B=89abcdefh C=fedcba98h D=76543210h
如果看到有4个类似的16进制数,你可以重点怀疑
第二个特点就是MD5算法会用到abs(sin(i))函数的值,这个函数的值你可以查表去了解一些常见的,如果在逆向分析程序时又看到这个函数的值,那么也可以帮助你判断这是MD5
2.SHA-1 (用PEID可看到SHA-1)
SHA-1和MD5类似,特色就是要初始化一些常数,SHA-1要初始化5个32位16进制数
h0:= 0x67452301 h1:= 0xEFCDAB89 h2:= 0x98BADCFE h3:= 0x10325476 h4:= 0xC3D2E1F0
同理SHA-256、SHA-384、SHA-512也有对应的初始化数据,这里就不一一列举了
对称加密算法:
1.RC4
RC4其实很难说有特色,但他本身的加密算法很简单,分析起来还比较方便
硬要说特色的话,首先要有加密数组和加密数组,数组必须要有,然后就没有多余操作,进行加解密就好了
参考了: