程序脱壳后用Peid查得出 E language * 可是ECE不能够分析。
程序入口处代码入下:
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
00401019 |. 6B 72 6E 6C 6>ascii "krnln.fnr",0
00401023 |. 6B 72 6E 6C 6>ascii "krnln.fne",0
0040102D |. 47 65 74 4E 6>ascii "GetNewSock",0
00401038 |. 53 6F 66 74 7>ascii "Software\FlySky\"
00401048 |. 45 5C 49 6E 7>ascii "E\Install",0
00401052 |. 50 61 74 68 0>ascii "Path",0
00401057 |. 4E 6F 74 20 6>ascii "Not found the ke"
00401067 |. 72 6E 65 6C 2>ascii "rnel library or "
00401077 |. 74 68 65 20 6>ascii "the kernel libra"
00401087 |. 72 79 20 69 7>ascii "ry is invalid!",0
00401096 |. 45 72 72 6F 7>ascii "Error",0
主程序2
00456BF7 FC cld ; 标志寄存器清0
00456BF8 DBE3 finit
00456BFA E8 FAC9FFFF call 004535F9
00456BFF 68 0B3D4500 push 00453D0B
00456C04 B8 03000000 mov eax, 3
00456C09 E8 54000000 call 00456C62
00456C0E 83C4 04 add esp, 4
00456C11 E8 C6C8FFFF call 004534DC
00456C16 E8 BFC7FFFF call 004533DA
00456C1B E8 CBC7FFFF call 004533EB
00456C20 E8 E3C8FFFF call 00453508
00456C25 E8 15C6FFFF call 0045323F
00456C2A E8 2DC6FFFF call 0045325C
00456C2F E8 EEC5FFFF call 00453222
00456C34 68 02000152 push 52010002
00456C39 E8 1E000000 call 00456C5C ; 程序画面显示
00456C3E 83C4 04 add esp, 4
00456C41 6A 00 push 0
00456C43 E8 0E000000 call 00456C56 ; 等待选择线路
00456C48 E8 03000000 call 00456C50
00456C4D 83C4 04 add esp, 4
00456C50 - FF25 43A24400 jmp dword ptr [44A243] ; krnln.100296E2
跟进程序以后却发现多数代码都是执行在krnln模块中,
1002964D /. 55 push ebp
1002964E |. 8BEC mov ebp, esp
10029650 |. C705 10EE0E10>mov dword ptr [100EEE10], 1
1002965A |. B9 A8EB0E10 mov ecx, 100EEBA8
1002965F |. E8 ECA70200 call 10053E50 ; 程序1.1.1a.2.1
10029664 |. 83F8 01 cmp eax, 1
10029667 |. 75 0C jnz short 10029675
10029669 |. 6A 00 push 0
1002966B |. B9 A8EB0E10 mov ecx, 100EEBA8
10029670 |. E8 ABA80200 call 10053F20 ; 程序1.1.1a.2.2
10029675 |> 5D pop ebp
10029676 \. C3 retn
程序在似乎是在众多的fnr和主程序间来回穿插,在下强请教一下跟踪的思路。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)