软件名称 星缘QQ群发器V1.5
用PEID查壳后发现是ASPACK 2.12 的壳
然后打开OD手动将其脱之
打开软件后发现点完没反应,这是自效验
再次打开OD,载入刚刚脱壳后的程序,入口在00401000
00401000 >/$ E8 06000000 call 0040100B
00401005 |. 50 push eax ; /ExitCode
00401006 \. E8 BB010000 call <jmp.&kernel32.ExitProcess> ; \ExitProcess
0040100B /$ 55 push ebp
0040100C |. 8BEC mov ebp, esp
0040100E |. 81C4 F0FEFFFF add esp, -110
00401014 |. E9 83000000 jmp 0040109C
下ExitProcess断点,然后运行程序,观察椎盏停在了
0012FC70 100298AD /CALL 到 ExitProcess 来自 krnln.100298A7
跟进100298A7
来到了100298A7 FF15 D4230C10 call dword ptr [100C23D4] ; kernel32.ExitProcess
以下是代码
10029892 55 push ebp
10029893 8BEC mov ebp, esp
10029895 8B45 08 mov eax, dword ptr [ebp+8]
10029898 50 push eax
10029899 B9 10DB0E10 mov ecx, 100EDB10
1002989E E8 4DC40200 call 10055CF0
100298A3 8B4D 08 mov ecx, dword ptr [ebp+8]
100298A6 51 push ecx
100298A7 FF15 D4230C10 call dword ptr [100C23D4] ; kernel32.ExitProcess
100298AD 5D pop ebp
然后在10029892 55 push ebp
这行下 硬件断点,然后重新载入程序,程序停在了
10029892 55 push ebp
10029892 55 push ebp
10029893 8BEC mov ebp, esp
10029895 8B45 08 mov eax, dword ptr [ebp+8]
10029898 50 push eax
10029899 B9 10DB0E10 mov ecx, 100EDB10
1002989E E8 4DC40200 call 10055CF0
100298A3 8B4D 08 mov ecx, dword ptr [ebp+8]
100298A6 51 push ecx
100298A7 FF15 D4230C10 call dword ptr [100C23D4] ; kernel32.ExitProcess
把这两行代码NOP掉
100298A6 51 push ecx
100298A7 FF15 D4230C10 call dword ptr [100C23D4] ; kernel32.ExitProcess
然后F8向下走,跳出krnln进程,回到了程序进程
00413FC8 83C4 04 add esp, 4
然后去除花指令,
00413FA2 /74 09 je short 00413FAD
改变跳转后却发现还是无法运行程序,请指点
[课程]Android-CTF解题方法汇总!