一同学给了我一个自己加过壳的“老板键试用版”让我来CRACK掉!!
我习惯性的将它用PEID查壳!显示为Nothing found [Overlay] *
无奈只有手脱,但本人脱壳技术实在欠佳!这次仅将脱壳过程记录下来!希望各为高手指教!
用OD加载程序来到:
006CC000 > 68 514D1B00 push 1B4D51
006CC005 58 pop eax
006CC006 68 20C06C00 push 006CC020
006CC00B 5E pop esi
006CC00C BF C4060000 mov edi, 6C4
006CC011 FF343E push dword ptr [esi+edi]
006CC014 310424 xor [esp], eax
006CC017 8F043E pop dword ptr [esi+edi]
006CC01A 83EF 02 sub edi, 2
006CC01D 83EF 02 sub edi, 2
006CC020 ^ 75 EF jnz short 006CC011
006CC022 90 nop
006CC023 90 nop
006CC024 B9 301A0051 mov ecx, 51001A30
006CC029 4D dec ebp
006CC02A 1B00 sbb eax, [eax]
006CC02C 51 push ecx
006CC02D 4D dec ebp
006CC02E 5B pop ebx
006CC02F 007A 70 add [edx+70], bh
006CC032 04 00 add al, 0
006CC034 9B wait
006CC035 C7 ??? ; 未知命令
006CC036 16 push ss
用F8跟到006CC022 90 nop处时006CC024 代码变为:call 006CC1A6我们F7跟进去:
006CC1A6 55 push ebp
006CC1A7 8BEC mov ebp, esp
006CC1A9 81C4 B4FEFFFF add esp, -14C
006CC1AF C645 F7 00 mov byte ptr [ebp-9], 0
006CC1B3 8BC5 mov eax, ebp
006CC1B5 83C0 04 add eax, 4
006CC1B8 8B10 mov edx, [eax]
006CC1BA 83EA 05 sub edx, 5
006CC1BD 8955 FC mov [ebp-4], edx
006CC1C0 8B4D FC mov ecx, [ebp-4]
006CC1C3 81C1 84000000 add ecx, 84
006CC1C9 894D F8 mov [ebp-8], ecx
006CC1CC 8B45 FC mov eax, [ebp-4]
006CC1CF 8B50 0C mov edx, [eax+C]
006CC1D2 8B4D FC mov ecx, [ebp-4]
006CC1D5 0351 08 add edx, [ecx+8]
006CC1D8 8BC5 mov eax, ebp
006CC1DA 83C0 04 add eax, 4
006CC1DD 8910 mov [eax], edx
006CC1DF FF75 F8 push dword ptr [ebp-8]
006CC1E2 FF75 FC push dword ptr [ebp-4]
006CC1E5 8D55 BC lea edx, [ebp-44]
006CC1E8 52 push edx
006CC1E9 E8 78000000 call 006CC266
006CC1EE 84C0 test al, al
006CC1F0 74 6D je short 006CC25F
006CC1F2 FF75 F8 push dword ptr [ebp-8]
006CC1F5 8D4D BC lea ecx, [ebp-44]
006CC1F8 51 push ecx
006CC1F9 8D85 B4FEFFFF lea eax, [ebp-14C]
006CC1FF 50 push eax
006CC200 E8 05020000 call 006CC40A
006CC205 84C0 test al, al
006CC207 74 23 je short 006CC22C
006CC209 66:83BD B4FEFFF>cmp word ptr [ebp-14C], 6
006CC211 72 19 jb short 006CC22C
006CC213 FF75 F8 push dword ptr [ebp-8]
006CC216 FF75 FC push dword ptr [ebp-4]
006CC219 8D55 BC lea edx, [ebp-44]
006CC21C 52 push edx
006CC21D 8D8D B6FEFFFF lea ecx, [ebp-14A]
006CC223 51 push ecx
006CC224 E8 51020000 call 006CC47A
006CC229 8845 F7 mov [ebp-9], al
006CC22C 807D F7 00 cmp byte ptr [ebp-9], 0
006CC230 75 2D jnz short 006CC25F
006CC232 FF75 FC push dword ptr [ebp-4]
006CC235 8D45 BC lea eax, [ebp-44]
006CC238 50 push eax
006CC239 8D95 B6FEFFFF lea edx, [ebp-14A]
006CC23F 52 push edx
006CC240 E8 81020000 call 006CC4C6
006CC245 84C0 test al, al
006CC247 74 16 je short 006CC25F
006CC249 FF75 F8 push dword ptr [ebp-8]
006CC24C FF75 FC push dword ptr [ebp-4]
006CC24F 8D4D BC lea ecx, [ebp-44]
006CC252 51 push ecx
006CC253 8D85 B6FEFFFF lea eax, [ebp-14A]
006CC259 50 push eax
006CC25A E8 1B020000 call 006CC47A
006CC25F 8BE5 mov esp, ebp
006CC261 5D pop ebp
006CC262 C3 retn
往下一直跟到返回RETN时的代码F8一次!来到:
005F3D2B 9C pushfd
005F3D2C 60 pushad
005F3D2D E8 00000000 call 005F3D32
005F3D32 5D pop ebp
005F3D33 83ED 07 sub ebp, 7
005F3D36 8D85 25FCFFFF lea eax, [ebp-3DB]
005F3D3C 8038 01 cmp byte ptr [eax], 1
005F3D3F 0F84 42020000 je 005F3F87
005F3D45 C600 01 mov byte ptr [eax], 1
005F3D48 8BD5 mov edx, ebp
005F3D4A 2B95 B9FBFFFF sub edx, [ebp-447]
005F3D50 8995 B9FBFFFF mov [ebp-447], edx
005F3D56 0195 E9FBFFFF add [ebp-417], edx
005F3D5C 8DB5 2DFCFFFF lea esi, [ebp-3D3]
005F3D62 0116 add [esi], edx
在005F3D2B处看到PUSHFD往下总觉得眼熟,便在这里DUMP出来,
用PEID查得:NsPacK V3.4-V3.5 -> LiuXingPing *
呵呵!用ESP定律脱壳便可!
我跟得有没有什么问题?还请各位指点!
说出来不怕大家笑!这是我第一次跟踪脱壳,而且我也不懂什么汇编语言!总是凭感觉来跟!只要感觉到了OEP时就DUMP也不管什么输入表的修复!我学汇编语言总觉得云里雾里!大家帮我指条明路吧!!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课