首页
社区
课程
招聘
[原创]比VM更强大的变形编译执行引擎
发表于: 2011-2-15 16:38 16475

[原创]比VM更强大的变形编译执行引擎

2011-2-15 16:38
16475
昆山滴水即将出品一款非常强悍的保护工具-变形编译执行引擎。
VMProtect是当前最强的虚拟机保护软件,要在PE中嵌入一个中间代码解释器!
编译执行引擎(相对虚拟解释引擎的),不用嵌入代码解释器。

编译执行引擎原理:
就是把X86指令序列编译成微码指令序列(要是在微码指令序列随机的加入微码指令可很好的提高变形和反分析强度),
再把编译微码指令序列编译成C代码序列(要是把C代码序列复杂化也可很好的提高变形和反分析强度),然后再把C代码序列编译成X86指令序列!编译的结果不用任何解释器,可以直接执行!

int TestCode(int a,int b)
{
        return (a+b)^(a-b);
}

有VC2008编译后的结果

push        ebp  
mov         ebp,esp
sub         esp,40h
push        ebx  
push        esi  
push        edi  
mov         eax,dword ptr [a]
add         eax,dword ptr
mov         ecx,dword ptr [a]
sub         ecx,dword ptr
xor         eax,ecx
pop         edi  
pop         esi  
pop         ebx  
mov         esp,ebp
pop         ebp  
ret              

再用编译执行引擎编译后的结果(这是没有随机的加入微码指令也没有复杂化C代码的)

mov         eax,dword ptr [ebp+14h]
mov         edx,dword ptr [ebp+10h]
add         edx,0FFFFFFFCh
mov         ecx,edx
mov         ebx,dword ptr [ebp+264h]
add         edx,ebx
mov         ebx,eax
mov         esi,edx
mov         dword ptr [ebp+40h],ecx
mov         dword ptr [esi],ebx
mov         eax,dword ptr [ebp+40h]
mov         dword ptr [ebp+10h],eax
mov         eax,dword ptr [ebp+10h]
mov         dword ptr [ebp+14h],eax
mov         eax,dword ptr [ebp+10h]
sub         eax,40h
mov         dword ptr [ebp+10h],eax
mov         edx,dword ptr [ebp+0Ch]
mov         ecx,dword ptr [ebp+10h]
add         ecx,0FFFFFFFCh
mov         ebx,ecx
mov         esi,dword ptr [ebp+264h]
add         ecx,esi
mov         esi,edx
mov         dword ptr [ebp+2Ch],eax
mov         eax,40h
mov         dword ptr [ebp+28h],eax
mov         dword ptr [ecx],esi
mov         dword ptr [ebp+10h],ebx
mov         eax,dword ptr [ebp+18h]
mov         edx,dword ptr [ebp+10h]
add         edx,0FFFFFFFCh
mov         ecx,edx
mov         ebx,dword ptr [ebp+264h]
add         edx,ebx
mov         ebx,eax
mov         esi,edx
mov         dword ptr [ebp+40h],ecx
mov         dword ptr [esi],ebx
mov         eax,dword ptr [ebp+40h]
mov         dword ptr [ebp+10h],eax
mov         eax,dword ptr [ebp+1Ch]
mov         edx,dword ptr [ebp+10h]
add         edx,0FFFFFFFCh
mov         ecx,edx
mov         ebx,dword ptr [ebp+264h]
add         edx,ebx
mov         ebx,eax
mov         esi,edx
mov         dword ptr [ebp+40h],ecx
mov         dword ptr [esi],ebx
mov         eax,dword ptr [ebp+40h]
mov         dword ptr [ebp+10h],eax
mov         eax,dword ptr [ebp+14h]
add         eax,8
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         dword ptr [ebp],eax
mov         eax,dword ptr [ebp+14h]
add         eax,0Ch
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp]
add         edx,eax
mov         dword ptr [ebp],edx
mov         ecx,dword ptr [ebp+14h]
add         ecx,8
mov         ebx,dword ptr [ebp+264h]
add         ecx,ebx
mov         dword ptr [ebp+28h],eax
mov         dword ptr [ebp+2Ch],edx
mov         eax,dword ptr [ecx]
mov         dword ptr [ebp+4],eax
mov         eax,dword ptr [ebp+14h]
add         eax,0Ch
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+4]
sub         edx,eax
mov         dword ptr [ebp+4],edx
mov         eax,dword ptr [ebp+4]
mov         edx,dword ptr [ebp]
xor         edx,eax
mov         dword ptr [ebp],edx
mov         eax,dword ptr [ebp+10h]
mov         ecx,dword ptr [ebp+264h]
add         eax,ecx
mov         ecx,eax
mov         dword ptr [ebp+2Ch],edx
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+10h]
add         edx,4
mov         dword ptr [ebp+10h],edx
mov         dword ptr [ebp+1Ch],eax
mov         eax,dword ptr [ebp+10h]
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+10h]
add         edx,4
mov         dword ptr [ebp+10h],edx
mov         dword ptr [ebp+18h],eax
mov         eax,dword ptr [ebp+10h]
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+10h]
add         edx,4
mov         dword ptr [ebp+10h],edx
mov         dword ptr [ebp+0Ch],eax
mov         eax,dword ptr [ebp+14h]
mov         dword ptr [ebp+10h],eax
mov         eax,dword ptr [ebp+10h]
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+10h]
add         edx,4
mov         dword ptr [ebp+10h],edx
mov         dword ptr [ebp+14h],eax
mov         eax,dword ptr [ebp+10h]
mov         edx,dword ptr [ebp+264h]
add         eax,edx
mov         ecx,eax
mov         eax,dword ptr [ecx]
mov         edx,dword ptr [ebp+10h]
add         edx,4
mov         dword ptr [ebp+10h],edx
mov         dword ptr [ebp+20h],eax
mov         eax,18h
mov         dword ptr [ebp+30h],eax

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先来占座围观。
2011-2-15 18:50
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
先不要太高估自己,并且不要随便一来就说自己比VMP怎样,不想又见到另外一个 T+W 哥出现了
2011-2-15 20:04
0
雪    币: 210
活跃值: (644)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
结果是速度忙了N多?
真正的大型/专业软件,好像基本不用什么太复杂的保护技术,比如EDA软件
2011-2-15 20:11
0
雪    币: 245
活跃值: (93)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
兰州就是滴水哥好不
2011-2-15 20:24
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
滴水哥的东西还是比较强悍的
2011-2-15 20:36
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
既然都成“C代码序列”了,我想到了F5。
2011-2-15 21:56
0
雪    币: 1183
活跃值: (2036)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
代码替换而己,放正式版出来,很多大牛要出手搞你的壳了。呵呵。小心
2011-2-15 21:59
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
加了一堆垃圾代码,还不如vm
2011-2-15 23:06
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
T哥还有闲心恐吓别人 ?

bin呢
2011-2-16 10:54
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
假壳不服了:怎么可能还有比假壳还假的壳啊?
2011-2-16 11:57
0
雪    币: 1183
活跃值: (2036)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
不多说,敢不敢放正式版就是强度最好证明,目前只有甲壳2跟SE敢放正式版,其余的都没有看到。争起来没意义,事实说话。对自己保护都没信心,何来让别人对你的产品放心。
2011-2-16 12:45
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
实在无法学习啊 !心理素质特高,不是一般的高啊 ,佩服的XXXXXX 的
2011-2-16 12:59
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
14
把这段代码编译一下给大家看看吧


#include <windows.h>
#include <list>
#include <algorithm>
void ShowTest(int num)
{
     printf("%d ", num);
}
void testlist()
{
std::list<int> ttt;

ttt.push_back(123);
ttt.push_back(456);
ttt.push_back(789);
ttt.push_back(124);
ttt.push_back(445);

for_each(ttt.begin(), ttt.end(), ShowTest);
ttt.sort();
for_each(ttt.begin(), ttt.end(), ShowTest);

return ;
}

void main()
{
testlist();
}

2011-2-16 14:30
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
15
上传的附件:
2011-2-16 14:39
0
雪    币: 367
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
要接受海风的考验啊
2011-2-16 15:46
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
以下载 8888888888888 次
2011-2-16 15:48
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
甲壳2的正式版在哪?
2011-2-16 20:23
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
只能膜拜鸟...........
2011-2-17 09:29
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
20
哈哈顶海风老大
2011-2-17 11:28
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
21
。。我还没有看回帖。看了楼主的。就感觉甲克哥要出现。果然
2011-2-20 19:21
0
雪    币: 210
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
大牛都在等正式版呢
2011-2-27 01:18
0
游客
登录 | 注册 方可回帖
返回
//