首页
社区
课程
招聘
[原创][6.1儿童节快乐]基于信息熵判断非PE文件是否加密混淆的方法浅析
发表于: 2021-6-5 16:57 11319

[原创][6.1儿童节快乐]基于信息熵判断非PE文件是否加密混淆的方法浅析

2021-6-5 16:57
11319

信息熵

什么是信息

在计算机科学中,我们通常认为信息是一种数据或指令的集合,泛指我们通过载体传播的内容.

信息熵

熵是一个热力学概念,是形容物质混乱程度的单位,当物质混乱程度越高的时候熵值越高.在上个世纪40年度,香农将熵引入到信息论中,把信息中排除冗余后的平均信息量定义为信息熵.

香农公式

我们假定有一列信息abaaabbababa...,其中字母a出现的概率是p,则字母b出现的概率是(1-p),那么当信息的长度为N的时候,信息中就会存在pNa,以及(1-p)个b,那么这个信息的排列方式就有N!/(pN)!((1-p)N)!种,对于a的自信息量就是Pa=-p*log2(p),那么整个信息列的熵就是S=-p*log2(p)-(1-p)*log2(1-p),这里用log2做底数是因为只有ab两种情况.
那么现在我们对整个公式进行抽象,可以得到

1
2
log2(1/pa) + log2(1/pb) + ... + log2(1/pn)
= ∑ log2(1/pn)

如果把2也当作是一个变量的话,我们可以进一步得出

1
2
3
S=log(1/pa) + log(1/pb) + ... + log(1/pn)
= ∑ log(1/pn)
= -p*log(p)

这就是大名鼎鼎的香农公式了.

信息熵的应用

信息熵目前被广泛应用在各种压缩场景种,对于长度相同的信息,熵值p越大,则表明信息内容越有规律,可压缩的体积就越大;p越小,则信息内容越随机,可压缩的体积就越小.
对于非PE文件,例如恶意脚本,为了逃避杀软检测经常使用加密\压缩等手段,无论如何处理都会增大信息的随机性,那么我们就可以利用信息熵来做对应检测了.

实现

思路

一个文本信息的基本单位是字节,一个字节的范围是0~255,那么我们就可以得到公式

1
I(n)=(S(a/256))+(S(b/256))....(S(n/256))

代码:

1
2
3
4
5
6
7
8
9
10
11
12
double CEntropy::calculate()
{
    double entropy = 0;
    DWORD dwMapSize = g_GlobalInfo.GetSize();
    for (int i = 0; i < 256; i++)
    {
        double p_x = double(g_GlobalInfo.count(((char)i))) / dwMapSize;
        if (p_x > 0)
            entropy += -p_x * (log(p_x));
    }
    return entropy;
}

样本:

1
2
aGVsbG8gd29yZA==
hello word

我们分别对Base64前后的数据进行计算,可以得到

1
2
encode_base64_entropy = 3.0351414
decode_base64_entropy = 2.1535325

[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2021-6-5 17:53 被wuxiwudi编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (6)
雪    币: 189
活跃值: (2266)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
666
2021-6-5 20:50
0
雪    币: 189
活跃值: (2266)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
666
2021-6-5 20:53
0
雪    币: 3241
活跃值: (2074)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看完後增加了一些知識,就是不知道能不能在以後用到了。
2021-6-6 00:17
0
雪    币: 33
活跃值: (493)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
字认识,内容不懂。
2021-6-7 11:07
0
雪    币: 3083
活跃值: (5728)
能力值: ( LV9,RANK:225 )
在线值:
发帖
回帖
粉丝
6
歪日,可以可以
2021-6-9 01:25
0
雪    币: 66
活跃值: (3042)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看过一些论文 用信息熵来判断程序有没有加壳
2021-6-9 09:37
0
游客
登录 | 注册 方可回帖
返回