新手破解中遇到很多难题,
没人指点,只能自己查找资料。
这一过程是艰难的,
但也学到了很多东西。
现在正在一步步艰难的爬行!
已经取得了一些进展,
但是困难仍然很多。
这个帖子部分的记录了这一过程,
非常渴望各位高手能稍微关注一下,
您简简单单的一句点评,
对我可能就是点睛之笔!有一个程序,查壳是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay] 。
用od手动脱壳、修复、添加附加数据,双击脱壳程序无反应,无进程。
用od载入,是这样一段代码:004CC5BF > 6A 60 push 60
004CC5C1 68 183F5500 push 00553F18
004CC5C6 E8 E10A0000 call 004CD0AC
004CC5CB BF 94000000 mov edi, 94
004CC5D0 8BC7 mov eax, edi
004CC5D2 E8 89F0FFFF call 004CB660
004CC5D7 8965 E8 mov dword ptr [ebp-18], esp
004CC5DA 8BF4 mov esi, esp
004CC5DC 893E mov dword ptr [esi], edi
004CC5DE 56 push esi
004CC5DF FF15 8C814D00 call dword ptr [<&kernel32.GetVersion>; kernel32.GetVersionExA
004CC5E5 8B4E 10 mov ecx, dword ptr [esi+10]
004CC5E8 890D B0C95600 mov dword ptr [56C9B0], ecx
004CC5EE 8B46 04 mov eax, dword ptr [esi+4]
004CC5F1 A3 BCC95600 mov dword ptr [56C9BC], eax
004CC5F6 8B56 08 mov edx, dword ptr [esi+8]
004CC5F9 8915 C0C95600 mov dword ptr [56C9C0], edx
004CC5FF 8B76 0C mov esi, dword ptr [esi+C]
004CC602 81E6 FF7F0000 and esi, 7FFF
004CC608 8935 B4C95600 mov dword ptr [56C9B4], esi
004CC60E 83F9 02 cmp ecx, 2
004CC611 74 0C je short 004CC61F
004CC613 81CE 00800000 or esi, 8000
004CC619 8935 B4C95600 mov dword ptr [56C9B4], esi
004CC61F C1E0 08 shl eax, 8
004CC622 03C2 add eax, edx
004CC624 A3 B8C95600 mov dword ptr [56C9B8], eax
004CC629 33F6 xor esi, esi
004CC62B 56 push esi
004CC62C 8B3D 1C814D00 mov edi, dword ptr [<&kernel32.GetMo>; kernel32.GetModuleHandleA
004CC632 FFD7 call edi
004CC634 66:8138 4D5A cmp word ptr [eax], 5A4D
004CC639 75 1F jnz short 004CC65A
004CC63B 8B48 3C mov ecx, dword ptr [eax+3C]
004CC63E 03C8 add ecx, eax
004CC640 8139 50450000 cmp dword ptr [ecx], 4550
004CC646 75 12 jnz short 004CC65A
004CC648 0FB741 18 movzx eax, word ptr [ecx+18]
004CC64C 3D 0B010000 cmp eax, 10B
004CC651 74 1F je short 004CC672
004CC653 3D 0B020000 cmp eax, 20B
004CC658 74 05 je short 004CC65F
004CC65A 8975 E4 mov dword ptr [ebp-1C], esi
004CC65D EB 27 jmp short 004CC686
004CC65F 83B9 84000000 0>cmp dword ptr [ecx+84], 0E
004CC666 ^ 76 F2 jbe short 004CC65A
004CC668 33C0 xor eax, eax
004CC66A 39B1 F8000000 cmp dword ptr [ecx+F8], esi
004CC670 EB 0E jmp short 004CC680
004CC672 8379 74 0E cmp dword ptr [ecx+74], 0E
004CC676 ^ 76 E2 jbe short 004CC65A
004CC678 33C0 xor eax, eax
004CC67A 39B1 E8000000 cmp dword ptr [ecx+E8], esi
004CC680 0F95C0 setne al
004CC683 8945 E4 mov dword ptr [ebp-1C], eax
004CC686 56 push esi
004CC687 E8 A32F0000 call 004CF62F
004CC68C 59 pop ecx
004CC68D 85C0 test eax, eax
004CC68F 75 21 jnz short 004CC6B2
004CC691 833D 70C95600 0>cmp dword ptr [56C970], 1
004CC698 75 05 jnz short 004CC69F
004CC69A E8 C44C0000 call 004D1363
004CC69F 6A 1C push 1C
004CC6A1 E8 464B0000 call 004D11EC
004CC6A6 68 FF000000 push 0FF
004CC6AB E8 9C290000 call 004CF04C
004CC6B0 59 pop ecx
004CC6B1 59 pop ecx
004CC6B2 E8 55540000 call 004D1B0C
004CC6B7 8975 FC mov dword ptr [ebp-4], esi
004CC6BA E8 A2520000 call 004D1961
004CC6BF 85C0 test eax, eax
004CC6C1 7D 08 jge short 004CC6CB
004CC6C3 6A 1B push 1B
004CC6C5 E8 D0FEFFFF call 004CC59A
004CC6CA 59 pop ecx
004CC6CB FF15 14814D00 call dword ptr [<&kernel32.GetCommand>; kernel32.GetCommandLineA
004CC6D1 A3 94DF5600 mov dword ptr [56DF94], eax
004CC6D6 E8 64510000 call 004D183F
004CC6DB A3 68C95600 mov dword ptr [56C968], eax
004CC6E0 E8 B8500000 call 004D179D
004CC6E5 85C0 test eax, eax
004CC6E7 7D 08 jge short 004CC6F1
004CC6E9 6A 08 push 8
004CC6EB E8 AAFEFFFF call 004CC59A
004CC6F0 59 pop ecx
004CC6F1 E8 744E0000 call 004D156A
004CC6F6 85C0 test eax, eax
004CC6F8 7D 08 jge short 004CC702
004CC6FA 6A 09 push 9
004CC6FC E8 99FEFFFF call 004CC59A
004CC701 59 pop ecx
004CC702 6A 01 push 1
004CC704 E8 73290000 call 004CF07C
004CC709 59 pop ecx
004CC70A 8945 D8 mov dword ptr [ebp-28], eax
004CC70D 3BC6 cmp eax, esi
004CC70F 74 07 je short 004CC718
004CC711 50 push eax
004CC712 E8 83FEFFFF call 004CC59A
004CC717 59 pop ecx
004CC718 8975 BC mov dword ptr [ebp-44], esi
004CC71B 8D45 90 lea eax, dword ptr [ebp-70]
004CC71E 50 push eax
004CC71F FF15 18814D00 call dword ptr [<&kernel32.GetStartup>; kernel32.GetStartupInfoA
004CC725 E8 E34D0000 call 004D150D
004CC72A 8945 E0 mov dword ptr [ebp-20], eax
004CC72D F645 BC 01 test byte ptr [ebp-44], 1
004CC731 74 06 je short 004CC739
004CC733 0FB745 C0 movzx eax, word ptr [ebp-40]
004CC737 EB 03 jmp short 004CC73C
004CC739 6A 0A push 0A
004CC73B 58 pop eax
004CC73C 50 push eax
004CC73D FF75 E0 push dword ptr [ebp-20]
004CC740 56 push esi
004CC741 56 push esi
004CC742 FFD7 call edi
004CC744 50 push eax
004CC745 E8 3472F3FF call 0040397E
004CC74A 8BF8 mov edi, eax
004CC74C 897D D4 mov dword ptr [ebp-2C], edi
004CC74F 3975 E4 cmp dword ptr [ebp-1C], esi
004CC752 75 06 jnz short 004CC75A
004CC754 57 push edi
004CC755 E8 4D2A0000 call 004CF1A7
004CC75A E8 6A2A0000 call 004CF1C9
然后程序终止,来到这里:代码不太会分析,不知道是这里有暗桩,还是附加数据的指针有问题?
恳请诸位高手过目看看,指点一下!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!