各类加密算法简单的识别技巧

逆向分析程序的时候往往会遇到一些加密解密算法,大家也都知道加密解密算法基本都是公开的,源码满天飞,只要识别出来是什么算法,在根据程序的要求做一些可能的修改就完成了,最重要的就是基础算法的识别,下面就简单介绍一些比较实用的算法识别的小技巧

算法的什么消息摘要大家都搜得到,这里的特点主要是逆向分析时的小技巧哦

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其实很难说有特色,但他本身的加密算法很简单,分析起来还比较方便

硬要说特色的话,首先要有加密数组和加密数组,数组必须要有,然后就没有多余操作,进行加解密就好了

参考了:https://ctf-wiki.github.io/ctf-wiki/reverse/Identify-Encode-Encryption/introduction/ 之后有了一些新的看法

关键数字是256(0x100),因为里面存在许多交换操作,都是256次!

2.TEA

这个算法最大的特点在于,他用到了黄金分割线作为密钥调度常数(9e3779b9h)

有些时候可能这个常熟不是很明显,换成了加加减减的操作,这个需要自己是别的,也不会很复杂

同时也会进行分组操作来方便计算,如果你发现有两块进行了分组,并且其中一块的内存分配是另一块的两倍也可以帮助验证,因为TEA算法中,分组长度为64位,密钥长度为128位

最后一个辅助判断就是常数32了,如果程序中定的循环次数是32次(加密解密循环次数),再结合之前的,八九不离十了

3.BlowFish  (用PEID可看到P数组和S-BOX)

P数组和S-BOX就是该算法的最大特点,我们只要识别出这两个就好

S-BOX就是圆周率Π的小数部分

因为S-BOX和P数组相当于是资源,所以遇到那种call函数进去后的一些mov指令可以跟随到数据窗口去看看,这些地方比较容易发现S-BOX和P数组

给个例子好了:链接:https://pan.baidu.com/s/1rKoQBycDIOh3mbn4z_bvJQ 密码:f1ys

打开BlowfishKGM.exe

通过搜索字符串找出加密处,或者直接对GetDlgItemTextA下断都是OK的

跟进

第一个call函数我们可以看见参数%02X,基本可以推出这个是scanf函数了,就不看了,看下一个,跟进

看到相关的mov语句了,数据窗口里看一下

不要怀疑,就是这个,这就是默认的S-BOX,还是比较顺利的,之后P数组的操作也类似,P数组是四个16进制常数构成的

P1=243f6a88h  P2=85a308d3  P3=13198a2e  P4=03707344

大家自己试试看哦

4.IDEA

注:这个算法用PEID是完全无法识别的,只能自己琢磨

…………

其他

1. base64

主要内容:三字节变四字节

其实给个具体例子就好了,例子来源于百度,如下

怎么三个字节变四个字节已经很清晰了,那么这个加密方式有如下几个特征

(1). 将字符以三字节为单位分组

(2). 有一张转换表,常规的转换索引表是ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ,但是有时候索引表会改变,但总之一定会有一张表

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值