peid0.94查出是Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks
用od加载
1. he GetModuleHandleA F9 运行····
断下后4次F9:
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
0012C280 00CE5331 kernel32.GetModuleHandleA 00CE532B 0012C508
0012C284 0012C3BC pModule = "kernel32.dll"
0012C50C 00CF9244 ? 00CE514F 00CF923F
0012F014 00CF5F04 00CF6458 00CF5EFF 0012F010
alt+f9返回:
00CE5331 8B0D 60D8D000 mov ecx, dword ptr [D0D860]
00CE5337 89040E mov dword ptr [esi+ecx], eax
00CE533A A1 60D8D000 mov eax, dword ptr [D0D860]
00CE533F 393C06 cmp dword ptr [esi+eax], edi
00CE5342 75 16 jnz short 00CE535A
00CE5344 8D85 B4FEFFFF lea eax, dword ptr [ebp-14C]
00CE534A 50 push eax
00CE534B FF15 B850D000 call dword ptr [D050B8] ; kernel32.LoadLibraryA
00CE5351 8B0D 60D8D000 mov ecx, dword ptr [D0D860]
00CE5357 89040E mov dword ptr [esi+ecx], eax
00CE535A A1 60D8D000 mov eax, dword ptr [D0D860]
00CE535F 393C06 cmp dword ptr [esi+eax], edi
00CE5362 0F84 AD000000 je 00CE5415 //改成jmp
00CE5368 33C9 xor ecx, ecx
00CE536A 8B03 mov eax, dword ptr [ebx]
00CE536C 3938 cmp dword ptr [eax], edi
00CE536E 74 06 je short 00CE5376
00CE5370 41 inc ecx
00CE5371 83C0 0C add eax, 0C
00CE5374 ^ EB F6 jmp short 00CE536C
2。bp GetCurrentThreadId F9 运行····
断下后2次F9:
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
0012F5A8 00CFCF2D kernel32.GetCurrentThreadId 00CFCF27 0012FD1C
0012F5B8 005A24E9 00CFCEBA 1.005A24E3 0012FD1C
0012FD20 005A2C41 1.005A1D1F 1.005A2C3C 0012FD1C
0012FF38 005AB447 1.005A2980 1.005AB442 0012FF34
0012FF3C 00400000 Arg1 = 00400000 ASCII "MZP"
0012FF40 00000000 Arg2 = 00000000
0012FF44 00141F01 Arg3 = 00141F01
0012FF48 0000000A Arg4 = 0000000A
alt+f9返回:
00CFCF2D A3 F018D100 mov dword ptr [D118F0], eax
00CFCF32 E8 2487FEFF call 00CE565B
00CFCF37 6A 00 push 0
00CFCF39 E8 4BD9FEFF call 00CEA889
00CFCF3E 59 pop ecx
00CFCF3F E8 7D39FFFF call 00CF08C1
。。。。。。
00CFCF9C A1 E018D100 mov eax, dword ptr [D118E0]
00CFCFA1 8B48 78 mov ecx, dword ptr [eax+78]
00CFCFA4 3348 5C xor ecx, dword ptr [eax+5C]
00CFCFA7 3348 14 xor ecx, dword ptr [eax+14]
00CFCFAA 2BF9 sub edi, ecx
00CFCFAC FFD7 call edi ; 1.004014A0 //F7进入
004014A0 /EB 10 jmp short 004014B2 //oep ?
004014A2 |66:623A bound di, dword ptr [edx]
004014A5 |43 inc ebx
004014A6 |2B2B sub ebp, dword ptr [ebx]
004014A8 |48 dec eax
004014A9 |4F dec edi
004014AA |4F dec edi
004014AB |4B dec ebx
004014AC |90 nop
004014AD -|E9 98505100 jmp 0091654A
004014B2 \A1 8B505100 mov eax, dword ptr [51508B]
004014B7 C1E0 02 shl eax, 2
004014BA A3 8F505100 mov dword ptr [51508F], eax
004014BF 52 push edx
004014C0 6A 00 push 0
004014C2 E8 C32D1100 call 0051428A ; jmp 到 kernel32.GetModuleHandleA
004014C7 8BD0 mov edx, eax
004014C9 E8 A2511000 call 00506670
然后就是转存脱壳,建输入表。但是程序老是不对,不知道oep是不是找对了?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课