初学OD破解,找了个没加壳的软件尝试一下,已经分析了一部分了,看似走到思路了,到论坛求助大侠,望给个思路就行。
006B393C /. 55 PUSH EBP
006B393D |. 8BEC MOV EBP,ESP
006B393F |. 6A 00 PUSH 0
006B3941 |. 6A 00 PUSH 0
006B3943 |. 6A 00 PUSH 0
006B3945 |. 53 PUSH EBX
006B3946 |. 8BD8 MOV EBX,EAX
006B3948 |. 33C0 XOR EAX,EAX
006B394A |. 55 PUSH EBP
006B394B |. 68 523A6B00 PUSH BCompare.006B3A52
006B3950 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
006B3953 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
006B3956 |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
006B3959 |. 8B83 98030000 MOV EAX,DWORD PTR DS:[EBX+398]
006B395F |. E8 D0BBF2FF CALL BCompare.005DF534 ; ;获取输入的字符串内容
006B3964 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] ; ;获取字符串内容
006B3967 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
006B396A |. E8 1D26D5FF CALL BCompare.00405F8C
006B396F |. 837D FC 00 CMP DWORD PTR SS:[EBP-4],0 ; ;判断输入的字符串长度是否为0,为0则推出
006B3973 |. 0F84 B3000000 JE BCompare.006B3A2C
006B3979 |. 8B83 98030000 MOV EAX,DWORD PTR DS:[EBX+398]
006B397F |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
006B3981 |. FF92 F0000000 CALL DWORD PTR DS:[EDX+F0]
006B3987 |. 8B83 98030000 MOV EAX,DWORD PTR DS:[EBX+398]
006B398D |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
006B398F |. FF92 8C000000 CALL DWORD PTR DS:[EDX+8C]
006B3995 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
006B3998 |. B8 683A6B00 MOV EAX,BCompare.006B3A68 ; ASCII "--------Beyond Compare 2--------"
006B399D |. E8 3E29D5FF CALL BCompare.004062E0 ; 开始判断输入是否合法。返回非0则格式正确但未教研通过
006B39A2 |. 85C0 TEST EAX,EAX
006B39A4 |. 75 11 JNZ SHORT BCompare.006B39B7
006B39A6 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
006B39A9 |. B8 943A6B00 MOV EAX,BCompare.006B3A94 ; ASCII "-Begin Key----------------------"
006B39AE |. E8 2D29D5FF CALL BCompare.004062E0
006B39B3 |. 85C0 TEST EAX,EAX
006B39B5 |. 74 0E JE SHORT BCompare.006B39C5
006B39B7 |> 8BD3 MOV EDX,EBX
006B39B9 |. A1 30306B00 MOV EAX,DWORD PTR DS:[6B3030]
006B39BE |. E8 CDD2FFFF CALL <BCompare.ShowErrorKey> ; ;格式正确但教研失败
006B39C3 |. EB 67 JMP SHORT BCompare.006B3A2C
006B39C5 |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; ;初步通过检测序列号,开始正规教研
006B39C8 |. 85C0 TEST EAX,EAX
006B39CA |. 74 05 JE SHORT BCompare.006B39D1 ; 输入为空则退出
006B39CC |. 83E8 04 SUB EAX,4
006B39CF |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; ;获取输入字符串长度,放入EAX中
006B39D1 |> 83C0 F8 ADD EAX,-8
006B39D4 |. 83E8 03 SUB EAX,3
006B39D7 |. 73 25 JNB SHORT BCompare.006B39FE
006B39D9 |. 0FB705 B83A6B0>MOVZX EAX,WORD PTR DS:[6B3AB8]
006B39E0 |. 50 PUSH EAX
006B39E1 |. 6A 00 PUSH 0
006B39E3 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
006B39E6 |. B8 E8366B00 MOV EAX,BCompare.006B36E8
006B39EB |. E8 004BD5FF CALL BCompare.004084F0
006B39F0 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; |
006B39F3 |. B1 01 MOV CL,1 ; |
006B39F5 |. 8BC3 MOV EAX,EBX ; |
006B39F7 |. E8 387DFFFF CALL BCompare.006AB734 ; \;看起来是序列号而不是迷失
006B39FC |. EB 2E JMP SHORT BCompare.006B3A2C
006B39FE |> 8B83 A4030000 MOV EAX,DWORD PTR DS:[EBX+3A4] ; ;完蛋
006B3A04 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
006B3A06 |. FF92 D8000000 CALL DWORD PTR DS:[EDX+D8]
006B3A0C |. 50 PUSH EAX
006B3A0D |. A1 D075B100 MOV EAX,DWORD PTR DS:[B175D0]
006B3A12 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
006B3A14 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
006B3A17 |. 8BD3 MOV EDX,EBX
006B3A19 |. E8 7A120000 CALL <BCompare.ShowErrorDialog> ; ;提示输入错误对话框
006B3A1E |. 84C0 TEST AL,AL
006B3A20 |. 74 0A JE SHORT BCompare.006B3A2C
006B3A22 |. C783 94020000 >MOV DWORD PTR DS:[EBX+294],1
006B3A2C |> 33C0 XOR EAX,EAX ; ;退出判断
006B3A2E |. 5A POP EDX
006B3A2F |. 59 POP ECX
006B3A30 |. 59 POP ECX
006B3A31 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
006B3A34 |. 68 593A6B00 PUSH BCompare.006B3A59
006B3A39 |> 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
006B3A3C |. E8 B322D5FF CALL BCompare.00405CF4
006B3A41 |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
006B3A44 |. E8 C32AD5FF CALL BCompare.0040650C
006B3A49 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
006B3A4C |. E8 A322D5FF CALL BCompare.00405CF4
006B3A51 \. C3 RETN
006B3A52 .^E9 2D1AD5FF JMP BCompare.00405484
以上为整个输入代码的窗体函数
006B39BE |. E8 CDD2FFFF CALL <BCompare.ShowErrorKey> ; ;格式正确但教研失败
006B39C3 |. EB 67 JMP SHORT BCompare.006B3A2C
006B39C5 |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; ;初步通过检测序列号,开始正规教研
006B39C8 |. 85C0 TEST EAX,EAX
006B39CA |. 74 05 JE SHORT BCompare.006B39D1 ; 输入为空则退出
006B39CC |. 83E8 04 SUB EAX,4
006B39CF |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; ;获取输入字符串长度,放入EAX中
006B39D1 |> 83C0 F8 ADD EAX,-8
006B39D4 |. 83E8 03 SUB EAX,3
006B39D7 |. 73 25 JNB SHORT BCompare.006B39FE
006B39D9 |. 0FB705 B83A6B0>MOVZX EAX,WORD PTR DS:[6B3AB8]
006B39E0 |. 50 PUSH EAX
006B39E1 |. 6A 00 PUSH 0
006B39E3 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
在进行到此步骤时感觉是个矛盾了。无论如何
006B39D1 |> 83C0 F8 ADD EAX,-8
006B39D4 |. 83E8 03 SUB EAX,3
006B39D7 |. 73 25 JNB SHORT BCompare.006B39FE
这一句都会执行。一旦执行就意味着失败,求解
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课