手头上有一软件,保存功能补变灰了,通过改了一个代码后,菜单灰色解除,但用鼠标点击保存功能,却没有反应,不知如何解决,请各位高手帮忙,谢谢!
附上功能限制几段代码:
0046D6C0 /$ 53 PUSH EBX
0046D6C1 |. 56 PUSH ESI
0046D6C2 |. 57 PUSH EDI
0046D6C3 |. 8BDA MOV EBX,EDX
0046D6C5 |. 8BF0 MOV ESI,EAX
0046D6C7 |. 3A5E 2D CMP BL,BYTE PTR DS:[ESI+2D] --->
改成 cmp bl,0 后灰色解除
0046D6CA |. 74 67 JE SHORT JactekDS.0046D733
0046D6CC |. 885E 2D MOV BYTE PTR DS:[ESI+2D],BL
0046D6CF |. A1 28145100 MOV EAX,DWORD PTR DS:[511428]
0046D6D4 |. 8338 02 CMP DWORD PTR DS:[EAX],2
0046D6D7 |. 75 0B JNZ SHORT JactekDS.0046D6E4
0046D6D9 |. 8BC6 MOV EAX,ESI
0046D6DB |. E8 B4000000 CALL JactekDS.0046D794
0046D6E0 |. 85C0 TEST EAX,EAX
0046D6E2 |. 75 0D JNZ SHORT JactekDS.0046D6F1
0046D6E4 |> 8B7E 58 MOV EDI,DWORD PTR DS:[ESI+58]
0046D6E7 |. 85FF TEST EDI,EDI
0046D6E9 |. 74 11 JE SHORT JactekDS.0046D6FC
0046D6EB |. 837F 60 00 CMP DWORD PTR DS:[EDI+60],0
0046D6EF |. 74 0B JE SHORT JactekDS.0046D6FC
0046D6F1 |> B2 01 MOV DL,1
0046D6F3 |. 8BC6 MOV EAX,ESI
0046D6F5 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
0046D6F7 |. FF51 38 CALL DWORD PTR DS:[ECX+38]
0046D6FA |. EB 37 JMP SHORT JactekDS.0046D733
0046D6FC |> 8B7E 58 MOV EDI,DWORD PTR DS:[ESI+58]
0046D6FF |. 85FF TEST EDI,EDI
0046D701 |. 74 27 JE SHORT JactekDS.0046D72A
0046D703 |. F646 20 02 TEST BYTE PTR DS:[ESI+20],2
0046D707 |. 75 21 JNZ SHORT JactekDS.0046D72A
0046D709 |. 33C0 XOR EAX,EAX
0046D70B |. 8AC3 MOV AL,BL
0046D70D |. 8B0485 087350>MOV EAX,DWORD PTR DS:[EAX*4+507308]
0046D714 83C8 00 OR EAX,0
0046D717 50 PUSH EAX
0046D718 0FB746 44 MOVZX EAX,WORD PTR DS:[ESI+44]
0046D71C |. 50 PUSH EAX
0046D71D 8BC7 MOV EAX,EDI
0046D71F E8 20E7FFFF CALL JactekDS.0046BE44
0046D724 |. 50 PUSH EAX ; |hMenu
0046D725 |. E8 38430800 CALL <JMP.&USER32.EnableMenuItem> ; \EnableMenuItem
0046D72A |> 33D2 XOR EDX,EDX
0046D72C |. 8BC6 MOV EAX,ESI
0046D72E |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
0046D730 |. FF51 38 CALL DWORD PTR DS:[ECX+38]
0046D733 |> 5F POP EDI
0046D734 |. 5E POP ESI
0046D735 |. 5B POP EBX
0046D736 \. C3 RETN
.
.
.
.
.
.
0048DC88 /$ 55 PUSH EBP
0048DC89 |. 8BEC MOV EBP,ESP
0048DC8B |. 53 PUSH EBX
0048DC8C |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DC8F |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DC92 |. 80B8 11020000>CMP BYTE PTR DS:[EAX+211],0
0048DC99 |. 0F84 DF000000 JE JactekDS.0048DD7E
0048DC9F |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DCA2 |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DCA5 |. F680 10020000>TEST BYTE PTR DS:[EAX+210],1
0048DCAC |. 0F84 CC000000 JE JactekDS.0048DD7E
0048DCB2 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DCB5 |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DCB8 |. 80B8 17020000>CMP BYTE PTR DS:[EAX+217],1
0048DCBF |. 0F84 B9000000 JE JactekDS.0048DD7E
0048DCC5 |. 6A 00 PUSH 0
0048DCC7 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DCCA |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DCCD |. E8 3EAB0100 CALL JactekDS.004A8810
0048DCD2 |. 50 PUSH EAX ; |hWnd
0048DCD3 |. E8 D8400600 CALL <JMP.&USER32.GetSystemMenu> ; \GetSystemMenu
0048DCD8 |. 8BD8 MOV EBX,EAX
0048DCDA |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DCDD |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DCE0 |. 80B8 11020000>CMP BYTE PTR DS:[EAX+211],3
0048DCE7 75 5D JNZ SHORT JactekDS.0048DD46
0048DCE9 |. 6A 00 PUSH 0 ; /Flags = MF_BYCOMMAND|MF_ENABLED|MF_STRING
0048DCEB |. 68 30F10000 PUSH 0F130 ; |ItemId = F130 (61744.)
0048DCF0 |. 53 PUSH EBX ; |hMenu
0048DCF1 |. E8 183D0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DCF6 |. 68 00040000 PUSH 400 ; /Flags = MF_BYPOSITION|MF_ENABLED|MF_STRING
0048DCFB |. 6A 07 PUSH 7 ; |ItemId = 7
0048DCFD |. 53 PUSH EBX ; |hMenu
0048DCFE |. E8 0B3D0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD03 |. 68 00040000 PUSH 400 ; /Flags = MF_BYPOSITION|MF_ENABLED|MF_STRING
0048DD08 |. 6A 05 PUSH 5 ; |ItemId = 5
0048DD0A |. 53 PUSH EBX ; |hMenu
0048DD0B |. E8 FE3C0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD10 |. 6A 00 PUSH 0 ; /Flags = MF_BYCOMMAND|MF_ENABLED|MF_STRING
0048DD12 |. 68 30F00000 PUSH 0F030 ; |ItemId = F030 (61488.)
0048DD17 |. 53 PUSH EBX ; |hMenu
0048DD18 |. E8 F13C0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD1D |. 6A 00 PUSH 0 ; /Flags = MF_BYCOMMAND|MF_ENABLED|MF_STRING
0048DD1F |. 68 20F00000 PUSH 0F020 ; |ItemId = F020 (61472.)
0048DD24 |. 53 PUSH EBX ; |hMenu
0048DD25 |. E8 E43C0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD2A |. 6A 00 PUSH 0 ; /Flags = MF_BYCOMMAND|MF_ENABLED|MF_STRING
0048DD2C |. 68 00F00000 PUSH 0F000 ; |ItemId = F000 (61440.)
0048DD31 |. 53 PUSH EBX ; |hMenu
0048DD32 |. E8 D73C0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD37 |. 6A 00 PUSH 0 ; /Flags = MF_BYCOMMAND|MF_ENABLED|MF_STRING
0048DD39 |. 68 20F10000 PUSH 0F120 ; |ItemId = F120 (61728.)
0048DD3E |. 53 PUSH EBX ; |hMenu
0048DD3F |. E8 CA3C0600 CALL <JMP.&USER32.DeleteMenu> ; \DeleteMenu
0048DD44 |. EB 38 JMP SHORT JactekDS.0048DD7E
0048DD46 |> 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DD49 |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DD4C |. F680 10020000>TEST BYTE PTR DS:[EAX+210],2
0048DD53 |. 75 0D JNZ SHORT JactekDS.0048DD62
0048DD55 6A 01 PUSH 1
0048DD57 |. 68 20F00000 PUSH 0F020 ; |ItemID = F020 (61472.)
0048DD5C |. 53 PUSH EBX ; |hMenu
0048DD5D |. E8 003D0600 CALL <JMP.&USER32.EnableMenuItem> ; \EnableMenuItem
0048DD62 |> 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0048DD65 |. 8B40 FC MOV EAX,DWORD PTR DS:[EAX-4]
0048DD68 |. F680 10020000>TEST BYTE PTR DS:[EAX+210],4
0048DD6F |. 75 0D JNZ SHORT JactekDS.0048DD7E
0048DD71 6A 01 PUSH 1
0048DD73 |. 68 30F00000 PUSH 0F030 ; |ItemID = F030 (61488.)
0048DD78 |. 53 PUSH EBX ; |hMenu
0048DD79 |. E8 E43C0600 CALL <JMP.&USER32.EnableMenuItem> ; \EnableMenuItem
0048DD7E |> 5B POP EBX
0048DD7F |. 5D POP EBP
0048DD80 \. C3 RETN
.
.
.
.
.
00489004 /. 55 PUSH EBP
00489005 |. 8BEC MOV EBP,ESP
00489007 |. 53 PUSH EBX
00489008 |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
0048900B |. 3B1D 7C765000 CMP EBX,DWORD PTR DS:[50767C]
00489011 |. 74 36 JE SHORT JactekDS.00489049
00489013 |. 53 PUSH EBX ; /hWnd
00489014 |. E8 ED8B0600 CALL <JMP.&USER32.IsWindowVisible> ; \IsWindowVisible
00489019 |. 85C0 TEST EAX,EAX
0048901B |. 74 2C JE SHORT JactekDS.00489049
0048901D |. 53 PUSH EBX ; /hWnd
0048901E |. E8 DD8B0600 CALL <JMP.&USER32.IsWindowEnabled> ; \IsWindowEnabled
00489023 |. 85C0 TEST EAX,EAX
00489025 |. 74 22 JE SHORT JactekDS.00489049
00489027 |. B8 08000000 MOV EAX,8
0048902C |. E8 F35C0400 CALL JactekDS.004CED24
00489031 |. 8B15 88765000 MOV EDX,DWORD PTR DS:[507688]
00489037 |. 8910 MOV DWORD PTR DS:[EAX],EDX
00489039 |. 8958 04 MOV DWORD PTR DS:[EAX+4],EBX
0048903C |. A3 88765000 MOV DWORD PTR DS:[507688],EAX
00489041 |. 6A 00 PUSH 0 ; /Enable = FALSE
00489043 |. 53 PUSH EBX ; |hWnd
00489044 |. E8 258A0600 CALL <JMP.&USER32.EnableWindow> ; \EnableWindow
00489049 |> 83C8 FF OR EAX,FFFFFFFF
0048904C |. 5B POP EBX
0048904D |. 5D POP EBP
0048904E \. C2 0800 RETN 8
.
.
.
.
.
.00489108 /$ 53 PUSH EBX
00489109 |. 56 PUSH ESI
0048910A |. 8BF0 MOV ESI,EAX
0048910C |. 85F6 TEST ESI,ESI
0048910E |. 74 2C JE SHORT JactekDS.0048913C
00489110 |> 8BDE /MOV EBX,ESI
00489112 |. 8B43 04 |MOV EAX,DWORD PTR DS:[EBX+4]
00489115 |. 50 |PUSH EAX ; /hWnd
00489116 |. E8 DF8A0600 |CALL <JMP.&USER32.IsWindow> ; \IsWindow
0048911B |. 85C0 |TEST EAX,EAX
0048911D |. 74 0B |JE SHORT JactekDS.0048912A
0048911F |. 6A FF |PUSH -1 ; /Enable = TRUE
00489121 |. 8B43 04 |MOV EAX,DWORD PTR DS:[EBX+4] ; |
00489124 |. 50 |PUSH EAX ; |hWnd
00489125 |. E8 44890600 |CALL <JMP.&USER32.EnableWindow> ; \EnableWindow
0048912A |> 8B33 |MOV ESI,DWORD PTR DS:[EBX]
0048912C |. BA 08000000 |MOV EDX,8
00489131 |. 8BC3 |MOV EAX,EBX
00489133 |. E8 045C0400 |CALL JactekDS.004CED3C
00489138 |. 85F6 |TEST ESI,ESI
0048913A |.^ 75 D4 \JNZ SHORT JactekDS.00489110
0048913C |> 5E POP ESI
0048913D |. 5B POP EBX
0048913E \. C3 RETN
.
.
.
.
.004A7DA0 /$ 53 PUSH EBX
004A7DA1 |. 8BD8 MOV EBX,EAX
004A7DA3 |. 8BC3 MOV EAX,EBX
004A7DA5 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
004A7DA7 |. FF52 4C CALL DWORD PTR DS:[EDX+4C]
004A7DAA |. 84C0 TEST AL,AL
004A7DAC |. 75 0F JNZ SHORT JactekDS.004A7DBD
004A7DAE |. 837B 24 00 CMP DWORD PTR DS:[EBX+24],0
004A7DB2 |. 74 09 JE SHORT JactekDS.004A7DBD
004A7DB4 |. 33D2 XOR EDX,EDX
004A7DB6 |. 8BC3 MOV EAX,EBX
004A7DB8 |. E8 F3D6FFFF CALL JactekDS.004A54B0
004A7DBD |> 8BC3 MOV EAX,EBX
004A7DBF |. E8 480D0000 CALL JactekDS.004A8B0C
004A7DC4 |. 84C0 TEST AL,AL
004A7DC6 |. 74 1E JE SHORT JactekDS.004A7DE6
004A7DC8 |. F643 20 10 TEST BYTE PTR DS:[EBX+20],10
004A7DCC |. 75 18 JNZ SHORT JactekDS.004A7DE6
004A7DCE |. 8BC3 MOV EAX,EBX
004A7DD0 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
004A7DD2 |. FF52 4C CALL DWORD PTR DS:[EDX+4C]
004A7DD5 |. F6D8 NEG AL
004A7DD7 |. 1BC0 SBB EAX,EAX
004A7DD9 |. 50 PUSH EAX ; /Enable
004A7DDA |. 8B83 4C010000 MOV EAX,DWORD PTR DS:[EBX+14C] ; |
004A7DE0 |. 50 PUSH EAX ; |hWnd
004A7DE1 |. E8 889C0400 CALL <JMP.&USER32.EnableWindow> ; \EnableWindow
004A7DE6 |> 5B POP EBX
004A7DE7 \. C3 RETN
刚入破解的门,有些东东还不是很了解,也不知道上面的这些代码对激活功能有没有用,麻烦各位了.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课