最近勒索软件盛行,果断有逆向加密算法的需求啊,可是小白一个真心逆向起来十分的费力。
下面记录几个逆向算法的关键点和关键步骤。
1) 定位加密算法的位置
加密算法有几个关键点:初始向量(vi)、加密密钥(key)、加密算法、输入数据、输出数据。
所以分析过程中要找出这几个关键点,一般关注点是输入数据和输出数据。
通过控制变量法,找到与加密算法相关的数据块,也就是看每一次与加密相关的数据块中,哪些是固定的、哪些是不变的,从而找到加密算法中的关键点。
2) 明确逆向的目的
到底是为了解密还是为了了解所使用的加密算法?
如果是为了解密,那就看加密算法中是不是有逻辑左移或右移,如果有,会有数据丢失,无法解密,如果能解密,再按照数据流流向,了解加密算法;
如果为了了解加密算法,那就按照第一步的方法,明确数据流方向,一步步解密。