奔跑的鱼 发表于 2008-7-1 19:16:53

【求助】疑惑!手脱Armadillo 1.xx - 2.xx 遇到的问题

一、欺骗代码
下断:BP OpenMutexA,F9运行
7C80EAAB >8BFF            mov edi,edi
7C80EAAD    55            push ebp
7C80EAAE    8BEC            mov ebp,esp
7C80EAB0    51            push ecx
7C80EAB1    51            push ecx
7C80EAB2    837D 10 00      cmp dword ptr ss:,0
7C80EAB6    56            push esi


堆栈友好提示:

0012F5B0   004FDDA6/CALL 到 OpenMutexA 来自 zs.004FDDA0
0012F5B4   001F0001|Access = 1F0001
0012F5B8   00000000|Inheritable = FALSE
0012F5BC   0012FBF0\MutexName = "8DC::DAC9D28748"   ★注意这个 12FBF0★


CTRL+G来到 401000,写入如下代码:

00401000    60            pushad
00401001    9C            pushfd
00401002    68 F0FB1200   push 12FBF0                           ; ASCII "620::DAC9D28748"
00401007    33C0            xor eax,eax
00401009    50            push eax
0040100A    50            push eax
0040100B    E8 BFD9407C   call kernel32.CreateMutexA
00401010    9D            popfd
00401011    61            popad
00401012- E9 94DA407C   jmp kernel32.OpenMutexA
00401017    90            nop

在401000 处新建eip。F9运行,再次中断在 OpenMutexA 处,取消该断点,然后返回401000处,撤消刚才键

入的所有代码。

二、避开IAT加密

下断:He GetModuleHandleA,F9运行       注意堆栈变化:
0012C280   00BD5331/CALL 到 GetModuleHandleA 来自 00BD532B
0012C284   0012C3BC\pModule = "kernel32.dll"

0012C280   00BD5331/CALL 到 GetModuleHandleA 来自 00BD532B
0012C284   0012C3BC\pModule = "user32.dll"

0012C280   00BD5331/CALL 到 GetModuleHandleA 来自 00BD532B
0012C284   0012C3BC\pModule = "MSVBVM60.DLL"

0012BB44   73391BD1/CALL 到 GetModuleHandleA 来自 73391BCB
0012BB48   7339F7E0\pModule = "kernel32.dll"
0012BB4C   73391B70返回到 73391B70 来自 73391B9C

0012BB38   7339282A/CALL 到 GetModuleHandleA 来自 73392824
0012BB3C   7339F80C\pModule = "KERNEL32"

0012BB2C   733931DC/CALL 到 GetModuleHandleA 来自 733931D6
0012BB30   00000000\pModule = NULL

0012C280   00BD5331/CALL 到 GetModuleHandleA 来自 00BD532B
0012C284   0012C3BC\pModule = "advapi32.dll"

00128844   01345331/CALL 到 GetModuleHandleA 来自 0134532B
00128848   00128980\pModule = "kernel32.dll"返回的好时期 alt+f9

0134532B    FF15 A4503601   call dword ptr ds:         ; kernel32.GetModuleHandleA
01345331    8B0D 60D83601   mov ecx,dword ptr ds:      ;★返回到这里!★
01345337    89040E          mov dword ptr ds:,eax
0134533A    A1 60D83601   mov eax,dword ptr ds:
0134533F    393C06          cmp dword ptr ds:,edi
01345342    75 16         jnz short 0134535A
01345344    8D85 B4FEFFFF   lea eax,dword ptr ss:
0134534A    50            push eax
0134534B    FF15 B8503601   call dword ptr ds:         ; kernel32.LoadLibraryA
01345351    8B0D 60D83601   mov ecx,dword ptr ds:
01345357    89040E          mov dword ptr ds:,eax
0134535A    A1 60D83601   mov eax,dword ptr ds:
0134535F    393C06          cmp dword ptr ds:,edi
01345362    0F84 AD000000   je 01345415                        ; Magic Jump
01345368    33C9            xor ecx,ecx
0134536A    8B03            mov eax,dword ptr ds:
0134536C    3938            cmp dword ptr ds:,edi
0134536E    74 06         je short 01345376
01345370    41            inc ecx
01345371    83C0 0C         add eax,0C
01345374^ EB F6         jmp short 0134536C

将 01345362    0F84 AD000000   je 01345415改为:
   01345362    0F84 AD000000   jmp 01345415
然后取消GetModuleHandleA断点

三、内存断点**直抵OEP

Alt+M 查看内存,在401000段 下“内存访问断点”,F9运行:

zs.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。

前面的都对!到这一步就出错啦!我那里不对?

寂寞的季节 发表于 2008-7-1 19:45:07

看看哪些保护方式

奔跑的鱼 发表于 2008-7-1 21:16:19

用armafp检查为
======== 01-07-2008 19:41:25 ========
D:\网络下\外挂制作学习\QQ华夏\zs\zs\zs.exe
★ 目标是Armadillo保护
保护系统级别为【标准版】
◆所用到的保护模式有◆
标准保护 或 最小保护模式
【密钥备份设置】
无任何注册表操作
【程序压缩方式设置】
最好/最慢的压缩方式
【其它保护设置】
禁止线程监视
★ Version 3.05 06Jun2003

寂寞的季节 发表于 2008-7-1 22:22:16

OEP
BP CreateThread

奔跑的鱼 发表于 2008-7-2 08:40:15

谢谢了!嘿嘿!/:014

奔跑的鱼 发表于 2008-7-2 10:30:22

回“寂寞的季节”
BP CreateThread下断后,F9运行,程序就运行啦!说明已经跳过了OEP了!/:L

寂寞的季节 发表于 2008-7-2 13:52:55

是你在修改完MAJ跳之后下 BP CreateThread在返回 F8向下

奔跑的鱼 发表于 2008-7-10 22:37:03

已经完美的解决问题!谢谢大家!/:014
页: [1]
查看完整版本: 【求助】疑惑!手脱Armadillo 1.xx - 2.xx 遇到的问题