首页
社区
课程
招聘
[讨论]VMP 1.8代码分析初步
发表于: 2009-4-5 10:44 7589

[讨论]VMP 1.8代码分析初步

2009-4-5 10:44
7589
似乎加入了tls,在tls中完成vm初始化吧?
.UPX2:003E6DE5 push    0F061F17Eh
.UPX2:003E6DEA call    loc_6544AB
进入VM代码
.UPX2:006544AB pusha
.UPX2:006544AC lea     esp, [esp+20h]
.UPX2:006544B0 jmp     loc_65430F

.UPX2:0065430F jmp     loc_653CAC

.UPX2:00653CAC push    ebp
.UPX2:00653CAD push    ebp
.UPX2:00653CAE call    loc_65583A

.UPX2:0065583A xchg    ebx, [esp+4]
.UPX2:0065583E pushf
.UPX2:0065583F not     bh
.UPX2:00655841 pushf
.UPX2:00655842 pop     dword ptr [esp+4]
.UPX2:00655846 bswap   ebx
.UPX2:00655848 inc     bx
.UPX2:0065584B movsx   bx, dl
.UPX2:0065584F mov     [esp], edx
.UPX2:00655852 not     bx
.UPX2:00655855 push    edi
.UPX2:00655856 call    loc_653FAC

.UPX2:00653FAC movsx   di, cl
.UPX2:00653FB0 movsx   ebx, bl
.UPX2:00653FB3 xchg    ecx, [esp]
.UPX2:00653FB6 movsx   cx, al
.UPX2:00653FBA movzx   ecx, dl
.UPX2:00653FBD xchg    di, bx
.UPX2:00653FC0 inc     di
.UPX2:00653FC3 push    ebp
.UPX2:00653FC4 call    loc_655C21

.UPX2:00655C21 pop     ebp
.UPX2:00655C22 call    loc_653F3E

.UPX2:00653F3E dec     bp
.UPX2:00653F41 mov     [esp], eax
.UPX2:00653F44 pusha
.UPX2:00653F45 mov     [esp+1Ch], esi
.UPX2:00653F49 pop     esi
.UPX2:00653F4A bsr     si, cx
.UPX2:00653F4E pushf
.UPX2:00653F4F push    ds:dword_654CE2
.UPX2:00653F55 pop     dword ptr [esp+18h]
.UPX2:00653F59 setl    bl
.UPX2:00653F5C inc     si
.UPX2:00653F5F jmp     loc_653E12

.UPX2:00653E12 mov     dword ptr [esp+14h], 0
.UPX2:00653E1A jmp     loc_655BCD

.UPX2:00655BCD mov     esi, [esp+44h]
.UPX2:00655BD1 inc     al
.UPX2:00655BD3 jmp     loc_65483F

.UPX2:0065483F pusha
.UPX2:00654840 call    loc_653A15

.UPX2:00653A15 inc     esi
.UPX2:00653A16 jmp     loc_6542D3

.UPX2:006542D3 bswap   ecx
.UPX2:006542D5 clc
.UPX2:006542D6 not     esi
.UPX2:006542D8 movsx   bp, bl
.UPX2:006542DC bts     bx, 9
.UPX2:006542E1 call    loc_654AE9
.UPX2:006542E6 cmc
.UPX2:006542E7 rol     al, 5
.UPX2:006542EA shld    edx, ebp, cl
.UPX2:006542ED xor     dx, 0F45Fh
.UPX2:006542F2 sbb     dl, bl
.UPX2:006542F4 jno     near ptr unk_655CB8
.UPX2:006542FA neg     al
.UPX2:006542FC clc
.UPX2:006542FD cmp     esi, esp
.UPX2:006542FF shl     dh, cl
.UPX2:00654301 not     dx
.UPX2:00654304 sub     al, 0E3h
.UPX2:00654306 rol     dx, 4
.UPX2:0065430A call    loc_654756

.UPX2:00654756 clc
.UPX2:00654757 setle   dl
.UPX2:0065475A and     al, 3Ch
.UPX2:0065475D inc     dl
.UPX2:0065475F add     edx, 312343EEh
.UPX2:00654765 mov     edx, [ebp+0]
.UPX2:00654768 stc
.UPX2:00654769 call    loc_653FEE

.UPX2:00653FEE cmc
.UPX2:00653FEF add     ebp, 4
.UPX2:00653FF2 mov     [esp], cl
.UPX2:00653FF5 mov     [edi+eax], edx
.UPX2:00653FF8 push    dword ptr [esp+4]
.UPX2:00653FFC mov     [esp], bp
.UPX2:00654000 pushf
.UPX2:00654001 lea     esp, [esp+10h]
.UPX2:00654005 jmp     loc_654364

.UPX2:00654364 push    2CA99D64h
.UPX2:00654369 shl     al, 4
.UPX2:0065436C mov     al, [esi-1]
.UPX2:0065436F sub     esp, 0FFFFFFFCh
.UPX2:00654372 jnp     loc_653D78

.UPX2:00653D78 clc
.UPX2:00653D79 sub     cx, 0E5A1h
.UPX2:00653D7E btc     cx, 9
.UPX2:00653D83 sub     al, bl
.UPX2:00653D85 dec     cl
.UPX2:00653D87 and     cl, ch
.UPX2:00653D89 add     al, 0FAh
.UPX2:00653D8B sub     ecx, eax
.UPX2:00653D8D shl     cx, cl
.UPX2:00653D90 not     al
.UPX2:00653D92 rcl     ecx, 1Bh
.UPX2:00653D95 jmp     loc_654EBA
以下查找vm dispatcher
.UPX2:00654EBA pushf
.UPX2:00654EBB xor     al, 66h
.UPX2:00654EBD pusha
.UPX2:00654EBE rol     ch, cl
.UPX2:00654EC0 rcl     cx, 3
.UPX2:00654EC4 clc
.UPX2:00654EC5 sub     bl, al
.UPX2:00654EC7 sbb     cx, di
.UPX2:00654ECA shr     cx, 0Dh
.UPX2:00654ECE or      cx, 1B1h
.UPX2:00654ED3 and     ecx, ebp
.UPX2:00654ED5 add     esi, 0FFFFFFFFh
.UPX2:00654ED8 rcr     ch, cl
.UPX2:00654EDA ror     cx, 3
.UPX2:00654EDE pop     ecx
.UPX2:00654EDF bt      cx, cx
.UPX2:00654EE3 movzx   eax, al
.UPX2:00654EE6 btr     cx, dx
.UPX2:00654EEA mov     ecx, ds:dword_6550C5[eax*4]
.UPX2:00654EF1 bt      bx, 0Ch
.UPX2:00654EF6 cmc
.UPX2:00654EF7 pusha
.UPX2:00654EF8 stc
.UPX2:00654EF9 rol     ecx, 1Fh       //解密vm入口?
.UPX2:00654EFC jmp     loc_654ADA

.UPX2:00654ADA mov     [esp+3Ch], ecx
.UPX2:00654ADE mov     [esp], dh
.UPX2:00654AE1 pushf
.UPX2:00654AE2 push    dword ptr [esp+40h]
.UPX2:00654AE6 retn    44h
这里设断,会断在每条vm代码完成时?
以上是胡乱分析,希望大牛指正!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 264
活跃值: (11)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
赶紧来吧 1.8cracked
2009-4-5 11:41
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
3
原来代码分析就是log一下贴出来啊
2009-4-5 12:55
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的很会搞笑.至少我现在就很乐.
2009-4-5 12:58
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
azy
5
而且没一个肯定句。。。
2009-4-5 13:06
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请教一下,用od怎么log?
2009-4-5 20:51
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
7
原版OD,菜单打开view->run trace
在dump窗口按ctrl+f11,再停下,窗口中就是
2009-4-5 21:08
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢,专业与业余的差别呀!不过,我是用ida pro 4.9 free得到的代码。
2009-4-5 21:27
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
试用od1.1挂了,用od2.0还行,一切比较正常;同时体会到了od的强大,赞一个
2009-4-5 22:04
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
10
我更业余,ida都不会用.
2009-4-5 22:17
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
怎没看到分析?
能否将垃圾去掉一下?

LZ这一条呢 ?
.UPX2:006542E1 call    loc_654AE9
2009-4-5 22:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
vmp下楼主如何隐藏od的
2009-4-8 19:31
0
雪    币: 400
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
同问vmp下楼主如何隐藏od的 ?
2009-4-8 21:48
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不会,所以才是讨论呀!不知用什么方法检测调试器的?
2009-4-8 23:36
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
15
等待高手来解决。
2009-4-11 12:25
0
游客
登录 | 注册 方可回帖
返回
//