首页
社区
课程
招聘
[原创]一种新的多态引擎设计思路,理论,以及实现.
发表于: 2009-4-13 15:00 24446

[原创]一种新的多态引擎设计思路,理论,以及实现.

2009-4-13 15:00
24446
收藏
免费 7
支持
分享
最新回复 (64)
雪    币: 210
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
看不懂啊...
2009-4-14 11:37
0
雪    币: 22
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
同意玩命的说法,感觉楼主有点自己把自己绕进去了。加密函数拆了然后随机绕两圈,确实让人都晕跟不用说杀毒软件,但仔细想想,你如何保证你的随机调用过程可逆?总得让解密后的程序能run吧。要不只是解密函数觉乱了没什么用呀,但解密出来的东西也乱了,那就不好了吧。这也是为什么前辈的花指令变换的用处。不管怎么变,咱功能不变。

Anyway, 你的随机加密函数用的函数没有特征么?

最后,还是风月说地,杀毒可以不捕捉你加密过程,VM技术以及 很高了,污点传播技术也很厉害了,楼主不妨看看先。

不过有想法就很不错
2009-4-14 11:50
0
雪    币: 251
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
楼主的想法不错~~~

如果将一个函数拆成多个,然再随机调用的话,产生的结果必然也是随机的的.
那解密时如何确定是随机中的哪一种呢?

像国产的杀软 东方微点,是以程序行为来判断的.不管你程序内部做何处理,程序要达到的目的肯定是一样的,微点只在将要产生危害系统行为的时候,再做处理.

楼主这种方法用在防破解上应该可以.
2009-4-16 09:52
0
雪    币: 8107
活跃值: (1955)
能力值: ( LV8,RANK:122 )
在线值:
发帖
回帖
粉丝
29
收藏了慢慢看
2009-4-16 16:42
0
雪    币: 121
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
30
启发式杀毒也不行吗? 你要运行你的函数就的"凑"到一起, 凑到一起就过不了启发
2009-4-16 19:26
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
31
可以杀,不管加了多少密~~
不过动态多少,你最后的CPU指令流程是可以标记的就可以杀~~
2009-4-16 21:27
0
雪    币: 315
活跃值: (23)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
32
这个和启发式有关系吗?
多态本就是为了躲避解密头特征码扫描。
对付现在的av只需要 加密 + Anti启发引擎。只要让启发引擎模拟不到我们真正的解密入口点,即可。说白了,现在的多态是为了躲避DNA。
2009-4-17 10:23
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
33
xfish开专题讲讲啥叫特征码吧,这样我们才能理解为啥多态能躲避特征码扫描~~~~
2009-4-17 11:57
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
34
"不过动态多少,你最后的CPU指令流程是可以标记的就可以杀~~"
vxk这样说了,启发式就不是简简单单的扫描了。

"对付现在的av只需要 加密 + Anti启发引擎"
说的太绝对了

说实话,捅个洞好捅,修堵墙难修....。

xfish是专业反病毒的还是专业写病毒的呀,
2009-4-18 18:55
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
35
LS既然提到了我,我就来简单说下XX标记法启发吧~

假设病毒使用API A,B,C,D这四个
流程是
A(参数1) B(参数2) C(参数3) D(参数4)
于是可有启发特征:调用序ABCD,参数为参数1,参数2,参数3,参数4

启发虚拟执行获得某程序C.EXE含有同样的序列,则为可疑文件...

这种序列很黄很暴力...

主要是要绕过启发引擎,否则一切努力都是白费的,而且现在启发引擎连自造型HEAP OVERRUN法都模拟了~~
2009-4-18 19:34
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
36
只要有虚拟机或者主动防御支持,执行过程中的任意状态或者动态序列(无论是何种序列),都是可以作为特征的

假如只能静态扫描,特征只能提代码,那LZ的方案,我个人认为很不错
2009-4-18 21:53
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
37
多态解密引擎本身 使用递归与循环进行大数计算. 当每一次计算出的结果满足某一条件时进行一次解密.
整个解密过程 需要在大数计算完成后才完成.
大数计算所花时间 大于三十秒.

再者,
就我现在提出的方案中, 在函数调用过程中随机加入无用参数,或者调动参数顺序都是很简单的事.
2009-4-19 00:03
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
38
在一个大数运算中 加入代码解密部分.
大数运算足够长的时间 . 虚拟启发引擎跑不出大数运算过程.

至于主动防御"特征", ...这不是一个多态引擎所能对付的
2009-4-19 00:05
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
39
启发虚拟执行获得某程序C.EXE含有同样的序列,则为可疑文件...

这种序列很黄很暴力...


如果现在的杀毒软件查毒引擎仅仅如此, 那真的确实太弱了.
也难怪"主动防御"横行.

也难怪, 引擎再强, 也只是循环和递归(个人认为)
2009-4-19 00:09
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
40
LZ放开思想

想想算法书上对程序行为判定方面的结论,再想想杀软杀的到底是什么

序列也是一样,可用的不止API
某个瞬间虚拟机的状态本身就能作为一种特征

你只能对抗你想到的检查方法,而虚拟机的运用还有很多方式
2009-4-19 00:11
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
41
呵呵.
你讲的这个 "某个瞬间虚拟机的状态本身就能作为一种特征"
我真的不懂. :)

希望如你所讲,我看到的东西很片面. 如果杀毒软件真像我想的那样弱, 那就真郁闷了.
2009-4-19 00:14
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
42

"某个瞬间虚拟机的状态本身就能作为一种特征"

顿悟..
2009-4-19 00:15
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
43
不过,我还真的是在这里被"伤害"了
一个AddSection 都给个精华, ExpandSection却什么都没有...

不过也无所谓了, 开始迷python了
2009-4-19 00:18
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
44
不是你看的东西片面,而是你没有进一步想.
你针对的是别人曾经告诉过你的,虚拟机通过把程序跑起来,直到解密好了,再执行扫描.

在仅仅知道虚拟机这么用的时候,你的方法的确是可以针对这一点的.

但是虚拟机和主动防御一样,都不是某种具体的方法,而是实现更多玩法的平台

就像有人拿主动防御弹窗口,有人拿主动防御特征扫描,以及更多的玩法
2009-4-19 00:36
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
45
把行为看作特征,那后面看用什么方式和角度来抽象行为了。
不能说100%查,也不能说100%反,概率问题。
2009-4-19 00:38
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
46
知道不?为什么多态病毒出现得更早,后来却加壳而不用多态?

那是因为正常软件也会加壳.

如果正常软件不用,这么有特色的多态引擎,你用虚拟机为这个引擎提特征,你觉得有难度嘛?
2009-4-19 00:45
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
47
既然这么多人有兴趣,给大家看看WIKI上对启发式这个英文的解释.其实当你用了启发式这个词,而某个问题又不是无解,基本就等于你把解说出来了.就像是说所有有限密钥在无限时间内都能被破解一样正确

Heuristic (/hjʊˈrɪs.tɪk/) is an adjective for methods that help in problem solving, in turn leading to learning and discovery. These methods in most cases employ experimentation and trial-and-error techniques. A heuristic method is particularly used to rapidly come to a solution that is reasonably close to the best possible answer, or 'optimal solution'. Heuristics are "rules of thumb", educated guesses, intuitive judgments or simply common sense.
2009-4-19 00:47
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
48
这就是杀毒软件的弱点咯
2009-4-19 00:49
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
49
加壳很快就要end of the road了~
2009-4-19 00:52
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
50
这就是杀毒软件的真相,不是判断程序的行为,而是判断你的东西有多少误报正常程序的风险.

如果没有正常程序用你的东西,就可以随便报.

关键不是你有多少种变化,而是你跟正常人不一样

你要把丝袜套头上进银行,立刻就引起保安注意了

但是你坐宝马到银行门口,再一堆保镖跟着你,你就是来抢劫银行的,在没告诉保安之前,他都以为你是大客户
2009-4-19 00:54
0
游客
登录 | 注册 方可回帖
返回
//