Peid测壳为:Armadillo 3.78
按论坛教程方法:
插件隐藏OD,BP OpenMutexA,401000处新建起源,改代码,
00401000 60 pushad
00401001 9C pushfd
00401002 68 B8DD1200 push 12DDB8 --->堆栈中看到的值
00401007 33C0 xor eax,eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 2FDB407C call kernel32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 - E9 04DC407C jmp kernel32.OpenMutexA
再次中断后撤消刚才修改,
he GetModuleHandleA+5,多次后返回到这,我认为已经找到Magic Jump,如下:
00AF9900 8B0D 0881B200 mov ecx,dword ptr ds:[B28108]
00AF9906 89040E mov dword ptr ds:[esi+ecx],eax
00AF9909 A1 0881B200 mov eax,dword ptr ds:[B28108]
00AF990E 393C06 cmp dword ptr ds:[esi+eax],edi
00AF9911 75 16 jnz short 00AF9929
00AF9913 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00AF9919 50 push eax
00AF991A FF15 D4D0B100 call near dword ptr ds:[B1D0D4] ; kernel32.LoadLibraryA
00AF9920 8B0D 0881B200 mov ecx,dword ptr ds:[B28108]
00AF9926 89040E mov dword ptr ds:[esi+ecx],eax
00AF9929 A1 0881B200 mov eax,dword ptr ds:[B28108]
00AF992E 393C06 cmp dword ptr ds:[esi+eax],edi
00AF9931 - 0F84 AD000090 je 90AF99E4 --->Magic Jump,改JMP
取消断点,bp GetCurrentThreadId,SHIFT + F9继续运行,没有到达预期的程序入口。到这程序退出:
00B1468A 8B04B0 mov eax,dword ptr ds:[eax+esi*4] --->程序出现异常,退出
00B1468D 3341 3C xor eax,dword ptr ds:[ecx+3C]
00B14690 8B0D 78C5B200 mov ecx,dword ptr ds:[B2C578]
00B14696 3341 44 xor eax,dword ptr ds:[ecx+44]
数据窗口显示:ds:[00000020]=??? eax=00000000
请指点是什么原因?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法