===========================================
00401000 >/$ 6A 00 PUSH 0 ; /pModule = NULL
00401002 |. E8 B7060000 CALL <JMP.&kernel32.GetModuleHandleA> ; \GetModuleHandleA
00401007 |. A3 40304000 MOV DWORD PTR DS:[403040],EAX
0040100C |. E8 A1060000 CALL <JMP.&kernel32.GetCommandLineA> ; [GetCommandLineA
00401011 |. A3 44304000 MOV DWORD PTR DS:[403044],EAX
00401016 |. 6A 0A PUSH 0A ; /Arg4 = 0000000A
00401018 |. FF35 44304000 PUSH DWORD PTR DS:[403044] ; |Arg3 = 00000000
0040101E |. 6A 00 PUSH 0 ; |Arg2 = 00000000
00401020 |. FF35 40304000 PUSH DWORD PTR DS:[403040] ; |Arg1 = 00000000
00401026 |. E8 06000000 CALL crackme.00401031 ; \crackme.00401031
0040102B |. 50 PUSH EAX ; /ExitCode
0040102C \. E8 7B060000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess
00401031 /$ 55 PUSH EBP
00401032 |. 8BEC MOV EBP,ESP
00401034 |. 83C4 B0 ADD ESP,-50
00401037 E8 3B040000 CALL crackme.00401477
0040103C 6A 10 PUSH 10
0040103E 68 35304000 PUSH crackme.00403035 ; ASCII "Nag"
00401043 68 21304000 PUSH crackme.00403021 ; ASCII "Patch Me if you can"
00401048 6A 00 PUSH 0
0040104A E8 33060000 CALL <JMP.&user32.MessageBoxA>
0040104F |. C745 D0 30000>MOV DWORD PTR SS:[EBP-30],30
00401056 |. C745 D4 03000>MOV DWORD PTR SS:[EBP-2C],3
0040105D |. C745 D8 3E114>MOV DWORD PTR SS:[EBP-28],crackme.004011>
00401064 |. C745 DC 00000>MOV DWORD PTR SS:[EBP-24],0
0040106B |. C745 E0 00000>MOV DWORD PTR SS:[EBP-20],0
00401072 |. FF35 40304000 PUSH DWORD PTR DS:[403040]
00401078 |. 8F45 E4 POP DWORD PTR SS:[EBP-1C]
0040107B |. 33C0 XOR EAX,EAX
0040107D |. B4 F4 MOV AH,0F4
0040107F |. C1E0 08 SHL EAX,8
===========================================
我把103C--104A的代码nop掉后发现还会出现消息框,后来发现是1037处的CALL的原因,可是把CALL nop 掉发现程序会出现异常,WHY????HOW????
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课