目标软件:银河远教资源管理系统 有没有高人帮忙破下,我看下破的过程,我错在哪里
★ 目标为Armadillo保护
Version 4.40.0250 (Custom Build)
保护系统级别为 (专业版)
◆所用到的保护模式有◆
屏蔽调试器
使用策略代码衔接模式
使用 Nanomites 处理模式
【备份密钥设置】
固定的备份密钥
【程序压缩设置】
较好/较慢地压缩方式
【其它保护设置】
双进程
工具:OD,lordFPE ImportREC1.6
用插件隐藏OD,
用OD载入
01190C43 >/$ 55 push ebp
01190C44 |. 8BEC mov ebp, esp
01190C46 |. 6A FF push -1
01190C48 |. 68 909F1B01 push ResManag.011B9F90
01190C4D |. 68 80091901 push ResManag.01190980 ; SE 处理程序安装
下断点bp OpenMutexA
F9
来到这儿
7C80EABB > 8BFF mov edi, edi ; ntdll.7C930208
7C80EABD 55 push ebp
7C80EABE 8BEC mov ebp, esp
7C80EAC0 51 push ecx
7C80EAC1 51 push ecx
7C80EAC2 837D 10 00 cmp dword ptr [ebp+10], 0
7C80EAC6 56 push esi
堆栈
0012F798 0117C7B8 /CALL 到 OpenMutexA 来自 ResManag.0117C7B2
0012F79C 001F0001 |Access = 1F0001
0012F7A0 00000000 |Inheritable = FALSE
0012F7A4 0012FDD8 \MutexName = "DA8::DA145B19B4"
0012F7A8 7C930208 ntdll.7C930208
Ctrl+G 401000
00401000 0000 add byte ptr [eax], al
00401002 0000 add byte ptr [eax], al
00401004 0000 add byte ptr [eax], al
00401006 0000 add byte ptr [eax], al
00401008 0000 add byte ptr [eax], al
0040100A 0000 add byte ptr [eax], al
0040100C 0000 add byte ptr [eax], al
0040100E 0000 add byte ptr [eax], al
00401010 0000 add byte ptr [eax], al
00401012 0000 add byte ptr [eax], al
00401014 0000 add byte ptr [eax], al
00401016 0000 add byte ptr [eax], al
00401018 0000 add byte ptr [eax], al
0040101A 0000 add byte ptr [eax], al
0040101C 0000 add byte ptr [eax], al
0040101E 0000 add byte ptr [eax], al
00401020 0000 add byte ptr [eax], al
替换为
00401000 60 pushad
00401001 9C pushfd
00401002 68 D8FD1200 push 12FDD8 ; ASCII "DA8::DA145B19B4"
00401007 33C0 xor eax, eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 CFD9407C call kernel32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 - E9 A4DA407C jmp kernel32.OpenMutexA
00401000为新的EIP,确定后 F9
来到这儿 取消断点
7C80EABB > 8BFF mov edi, edi ; ntdll.7C930208
7C80EABD 55 push ebp
7C80EABE 8BEC mov ebp, esp
7C80EAC0 51 push ecx
7C80EAC1 51 push ecx
7C80EAC2 837D 10 00 cmp dword ptr [ebp+10], 0
7C80EAC6 56 push esi
下he GetModuleHandleA+5
看堆栈
00129528 |01E37105 返回到 01E37105 来自 kernel32.GetModuleHandleA
0012952C |01E4BC1C ASCII "kernel32.dll"
00129530 |01E4CEC4 ASCII "VirtualAlloc"
00129528 |01E37122 返回到 01E37122 来自 kernel32.GetModuleHandleA
0012952C |01E4BC1C ASCII "kernel32.dll"
00129530 |01E4CEB8 ASCII "VirtualFree"
一个异常,点确定,Shift+F9,
0012928C |01E25FC9 返回到 01E25FC9 来自 kernel32.GetModuleHandleA
00129290 |001293DC ASCII "kernel32.dll"
取消硬件断点 再按Alt+F9返回
01E25FC9 8B0D AC40E501 mov ecx, dword ptr [1E540AC]
01E25FCF 89040E mov dword ptr [esi+ecx], eax
01E25FD2 A1 AC40E501 mov eax, dword ptr [1E540AC]
01E25FD7 391C06 cmp dword ptr [esi+eax], ebx
01E25FDA 75 16 jnz short 01E25FF2
01E25FDC 8D85 B4FEFFFF lea eax, dword ptr [ebp-14C]
01E25FE2 50 push eax
01E25FE3 FF15 BC62E401 call dword ptr [1E462BC] ; kernel32.LoadLibraryA
01E25FE9 8B0D AC40E501 mov ecx, dword ptr [1E540AC]
01E25FEF 89040E mov dword ptr [esi+ecx], eax
01E25FF2 A1 AC40E501 mov eax, dword ptr [1E540AC]
01E25FF7 391C06 cmp dword ptr [esi+eax], ebx
01E25FFA 0F84 2F010000 je 01E2612F 这就是所说的magic jmp吧 改je为jmp
01E26000 33C9 xor ecx, ecx
01E26002 8B07 mov eax, dword ptr [edi]
01E26004 3918 cmp dword ptr [eax], ebx
01E26006 74 06 je short 01E2600E
01E26008 41 inc ecx
01E26009 83C0 0C add eax, 0C
按ALT+M
在00401000下断
{
看了好此文章,都在401000处下断,但是他们的是.text
但是我的是CODE段,
是不是错在这儿了,
请各位大大们,指点迷津}
然后F9,然后来到这儿
01E3F968 8B12 mov edx, dword ptr [edx]
01E3F96A 8955 DC mov dword ptr [ebp-24], edx
01E3F96D 834D FC FF or dword ptr [ebp-4], FFFFFFFF
01E3F971 EB 11 jmp short 01E3F984
01E3F973 6A 01 push 1
01E3F975 58 pop eax
01E3F976 C3 retn
下面F8单步
01E3F965 8955 CC mov dword ptr [ebp-34], edx
01E3F968 8B12 mov edx, dword ptr [edx]
01E3F96A 8955 DC mov dword ptr [ebp-24], edx
01E3F96D 834D FC FF or dword ptr [ebp-4], FFFFFFFF
01E3F971 EB 11 jmp short 01E3F984
01E3F973 6A 01 push 1
01E3F975 58 pop eax
01E3F976 C3 retn
01E3F977 8B65 E8 mov esp, dword ptr [ebp-18]
01E3F97A 834D FC FF or dword ptr [ebp-4], FFFFFFFF
01E3F97E 8B7D 08 mov edi, dword ptr [ebp+8]
01E3F981 8B55 DC mov edx, dword ptr [ebp-24]
01E3F984 A1 E400E501 mov eax, dword ptr [1E500E4]
01E3F989 3150 34 xor dword ptr [eax+34], edx
01E3F98C A1 E400E501 mov eax, dword ptr [1E500E4]
01E3F991 3150 34 xor dword ptr [eax+34], edx
01E3F994 A1 E400E501 mov eax, dword ptr [1E500E4]
01E3F999 8B88 80000000 mov ecx, dword ptr [eax+80]
01E3F99F 3348 5C xor ecx, dword ptr [eax+5C]
01E3F9A2 3348 44 xor ecx, dword ptr [eax+44]
01E3F9A5 030D FC00E501 add ecx, dword ptr [1E500FC] ; ResManag.00400000
01E3F9AB 8B17 mov edx, dword ptr [edi]
01E3F9AD 85D2 test edx, edx
01E3F9AF 75 18 jnz short 01E3F9C9
01E3F9B1 FF77 18 push dword ptr [edi+18]
01E3F9B4 FF77 14 push dword ptr [edi+14]
01E3F9B7 FF77 10 push dword ptr [edi+10]
01E3F9BA 8B50 60 mov edx, dword ptr [eax+60]
01E3F9BD 3350 44 xor edx, dword ptr [eax+44]
01E3F9C0 3350 1C xor edx, dword ptr [eax+1C]
01E3F9C3 2BCA sub ecx, edx
01E3F9C5 FFD1 call ecx 运行到这儿按F7进入,
01E3F9C7 EB 1D jmp short 01E3F9E6
01E3F9C9 83FA 01 cmp edx, 1
01E3F9CC 75 1B jnz short 01E3F9E9
全红,用lordPE 转存,用ImportREC1.6修复,但是修复后的不能运行,出现错误
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!