-
-
[求助]一个变态壳对API调用进行VM
-
发表于:
2010-2-17 01:33
5688
-
这个壳很BT,里面带了VM,不仅VM程序本身的部分代码,还VM WIN32 API的代码。。。。。
我现在只找到了OEP,但是还搞不定IAT,因为它是直接把调用给VM掉了。。。。所以只能把
007C6990 8138 E8000000 cmp dword ptr [eax], 0E8
007C6996 0F85 2C000000 jnz 007C69C8
007C699C 8078 04 00 cmp byte ptr [eax+4], 0
007C69A0 0F85 22000000 jnz 007C69C8
这两处jnz nop掉,这样在最后DUMP下来的程序是这样的
004071B8 53 push ebx //OEP
004071B9 8BD8 mov ebx, eax
004071BB 33C0 xor eax, eax
004071BD A3 A4F05700 mov dword ptr [57F0A4], eax
004071C2 6A 00 push 0
004071C4 E8 2BFFFFFF call 004070F4//对GetModuleHandle的调用
004071C9 A3 68665800 mov dword ptr [586668], eax
004070F4 - E9 2990DB03 jmp 041C0122//跳转到VM后的代码
041C0122 - E9 1AB66478 jmp kernel32.GetModuleHandleA// 把那两处NOP掉以后这里才是这个样子
041C0127 - E9 8F79BE73 jmp ADVAPI32.RegQueryValueExA
041C012C - E9 2177BE73 jmp ADVAPI32.RegOpenKeyExA
如果不NOP掉,就会是这个样子
004071B8 53 push ebx ; Game2.007C71F9//oep
004071B9 8BD8 mov ebx, eax
004071BB 33C0 xor eax, eax
004071BD A3 A4F05700 mov dword ptr [57F0A4], eax
004071C2 6A 00 push 0
004071C4 E8 2BFFFFFF call 004070F4//调用GetModuleHandleA
004071C9 A3 68665800 mov dword ptr [586668], eax
004070F4 - E9 ED9CFC03 jmp 043D0DE6
043D0DE6 8BFF mov edi, edi//被无耻掉了
043D0DE8 E9 12000000 jmp 043D0DFF
043D0DED F2: prefix repne:
043D0DEE 43 inc ebx
043D0DEF C0F9 3E sar cl, 3E
043D0DF2 9F lahf
043D0DF3 EC in al, dx
043D0DF4 B5 4A mov ch, 4A
043D0DF6 BB D8311697 mov ebx, 971631D8
043D0DFB 846D A2 test byte ptr [ebp-5E], ch
043D0DFE 3395 609CE90F xor edx, dword ptr [ebp+FE99C60]
附件是这个程序。。。。。
这个OOXX壳弄了半天了,还是弄不出来,求教高手
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!