似乎加入了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作者讲授!