大家好
刚刚才开始破解,也看了论坛里的一些文章了。
现在找一个软件来练练手。
可是现在有一个问题。
使用ollydbg.
在注册的地方,把je跳转给改为nop了,显示注册成功。
在导出功能上,还是显示未注册版本。
显示未注册地方:00461227调用了这个地方
00444E89 . C3 RETN
00444E8A /$ 6A 00 PUSH 0
00444E8C |. 6A 00 PUSH 0
00444E8E |. 68 68EB4700 PUSH WHouse.0047EB68 ; 未注册版不能使用导出功能!
00444E93 |. E8 6CC90100 CALL <JMP.&MFC42.#1200_?AfxMessageBox@@YGHPBDII@Z>
00444E98 \. C3 RETN
调用未注册的地方:
0046120D |. C9 LEAVE
0046120E |. C3 RETN
0046120F |> E8 1441FAFF CALL WHouse.00405328
//我加了断点,好像没有到这里
00461214 |. 3BF3 CMP ESI,EBX
00461216 |. 74 08 JE SHORT WHouse.00461220
//我加了断点,好像没有到这里
00461218 |. 8B06 MOV EAX,DWORD PTR DS:[ESI]
0046121A |. 6A 01 PUSH 1
0046121C |. 8BCE MOV ECX,ESI
0046121E |. FF10 CALL DWORD PTR DS:[EAX]
00461220 |> 53 PUSH EBX ; /ExitCode
00461221 \. FF15 D8B04600 CALL DWORD PTR DS:[<&KERNEL32.ExitProcess>] ; \ExitProcess
00461227 . E8 5E3CFEFF CALL WHouse.00444E8A
//调用显示未注册,加了断点
0046122C . C2 0800 RETN 8
我在00461227和00461227上面的地方都加了断点了,但是好像每次直接就到00461227,然后是显示未注册版本,上面的都没有到。
我不知道什么地方调用00461227的,在显示未注册之前还干了什么。怎么才能找到程序是从哪里来到00461227的呢???
或许在程序开始时就开始检测了,但是我经验有限,不知道在开始的时候是怎样检测的,还希望高手指点一下。
下面是开始时的状态:
00461070 /$ B8 9AA34600 MOV EAX,WHouse2.0046A39A
//加断点,程序开始时进入
00461075 |. E8 B60C0000 CALL <JMP.&MSVCRT._EH_prolog>
0046107A |. 83EC 10 SUB ESP,10
0046107D |. 53 PUSH EBX
0046107E |. 56 PUSH ESI
0046107F |. 57 PUSH EDI
00461080 |. 8BF1 MOV ESI,ECX
00461082 |. BF D4F04700 MOV EDI,WHouse2.0047F0D4 ; 信息提示栏
00461087 |. 57 PUSH EDI
00461088 |. 8D8E FC000000 LEA ECX,DWORD PTR DS:[ESI+FC]
0046108E |. C746 4C 64000>MOV DWORD PTR DS:[ESI+4C],64
00461095 |. E8 A4030000 CALL <JMP.&MFC42.#860_??4CString@@QAEABV>
0046109A |. 57 PUSH EDI
0046109B |. E8 EA71FAFF CALL WHouse2.0040828A
004610A0 |. 8BC8 MOV ECX,EAX
004610A2 |. 81C1 D0020000 ADD ECX,2D0
004610A8 |. E8 69FFFCFF CALL WHouse2.00431016
004610AD |. 8B3D D0B94600 MOV EDI,DWORD PTR DS:[<&USER32.SendMessa>; USER32.SendMessageA
004610B3 |. 33DB XOR EBX,EBX
004610B5 |. 53 PUSH EBX ; /lParam => 0
004610B6 |. 53 PUSH EBX ; |wParam => 0
004610B7 |. 68 09100000 PUSH 1009 ; |Message = MSG(1009)
004610BC |. FF76 20 PUSH DWORD PTR DS:[ESI+20] ; |hWnd
004610BF |. FFD7 CALL EDI ; \SendMessageA
004610C1 |. 8BCE MOV ECX,ESI
004610C3 |. E8 06070000 CALL <JMP.&MFC42.#6696_?GetHeaderCtrl@CL>
004610C8 |. 53 PUSH EBX
004610C9 |. 53 PUSH EBX
004610CA |. 68 00120000 PUSH 1200
004610CF |. FF70 20 PUSH DWORD PTR DS:[EAX+20]
004610D2 |. FFD7 CALL EDI
004610D4 |. 3BC3 CMP EAX,EBX
004610D6 |. 7E 14 JLE SHORT WHouse2.004610EC
004610D8 |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
004610DB |> 53 /PUSH EBX
004610DC |. 53 |PUSH EBX
004610DD |. 68 1C100000 |PUSH 101C
004610E2 |. FF76 20 |PUSH DWORD PTR DS:[ESI+20]
004610E5 |. FFD7 |CALL EDI
004610E7 |. FF4D EC |DEC DWORD PTR SS:[EBP-14]
004610EA |.^ 75 EF \JNZ SHORT WHouse2.004610DB
004610EC |> E8 25040000 CALL <JMP.&MFC42.#1168_?AfxGetModuleStat>
004610F1 |. 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
004610F4 |. 8D88 AC010000 LEA ECX,DWORD PTR DS:[EAX+1AC]
004610FA |. E8 F814FBFF CALL WHouse2.004125F7
004610FF |. 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]
00461102 |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX
00461105 |. E8 22030000 CALL <JMP.&MFC42.#540_??0CString@@QAE@XZ>
0046110A |. 33FF XOR EDI,EDI
0046110C |. 395D EC CMP DWORD PTR SS:[EBP-14],EBX
0046110F |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX
00461112 |. 0F8E DC000000 JLE WHouse2.004611F4
00461118 |> E8 F9030000 /CALL <JMP.&MFC42.#1168_?AfxGetModuleSta>
0046111D |. 8B40 04 |MOV EAX,DWORD PTR DS:[EAX+4]
00461120 |. 8D4D F0 |LEA ECX,DWORD PTR SS:[EBP-10]
00461123 |. 51 |PUSH ECX
00461124 |. 57 |PUSH EDI
00461125 |. 8D88 AC010000 |LEA ECX,DWORD PTR DS:[EAX+1AC]
0046112B |. E8 7360FAFF |CALL WHouse2.004071A3
00461130 |. 8D4D F0 |LEA ECX,DWORD PTR SS:[EBP-10]
00461133 |. E8 90060000 |CALL <JMP.&MFC42.#4202_?MakeLower@CStri>
00461138 |. 68 08DC4700 |PUSH WHouse2.0047DC08 ; input
0046113D |. 8D4D F0 |LEA ECX,DWORD PTR SS:[EBP-10]
00461140 |. E8 D3040000 |CALL <JMP.&MFC42.#2764_?Find@CString@@Q>
00461145 |. 83F8 FF |CMP EAX,-1
00461148 |. 75 16 |JNZ SHORT WHouse2.00461160
0046114A |. 68 00DC4700 |PUSH WHouse2.0047DC00 ; output
0046114F |. 8D4D F0 |LEA ECX,DWORD PTR SS:[EBP-10]
00461152 |. E8 C1040000 |CALL <JMP.&MFC42.#2764_?Find@CString@@Q>
00461157 |. 83F8 FF |CMP EAX,-1
0046115A |. 0F84 8A000000 |JE WHouse2.004611EA
00461160 |> 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
00461163 |. 50 |PUSH EAX
00461164 |. 8D45 E8 |LEA EAX,DWORD PTR SS:[EBP-18]
00461167 |. 68 F0DB4700 |PUSH WHouse2.0047DBF0 ; select * from
0046116C |. 50 |PUSH EAX
0046116D |. E8 D6040000 |CALL <JMP.&MFC42.#926_??H@YG?AVCString@>
00461172 |. 50 |PUSH EAX
00461173 |. 8D4D F0 |LEA ECX,DWORD PTR SS:[EBP-10]
00461176 |. C645 FC 01 |MOV BYTE PTR SS:[EBP-4],1
0046117A |. E8 2B030000 |CALL <JMP.&MFC42.#858_??4CString@@QAEAB>
0046117F |. 8D4D E8 |LEA ECX,DWORD PTR SS:[EBP-18]
00461182 |. 885D FC |MOV BYTE PTR SS:[EBP-4],BL
00461185 |. E8 96020000 |CALL <JMP.&MFC42.#800_??1CString@@QAE@X>
0046118A |. 6A 58 |PUSH 58
0046118C |. E8 9F040000 |CALL <JMP.&MFC42.#823_??2@YAPAXI@Z>
00461191 |. 59 |POP ECX
00461192 |. 8945 E4 |MOV DWORD PTR SS:[EBP-1C],EAX
00461195 |. 3BC3 |CMP EAX,EBX
00461197 |. C645 FC 02 |MOV BYTE PTR SS:[EBP-4],2
0046119B |. 74 1A |JE SHORT WHouse2.004611B7
0046119D |. E8 74030000 |CALL <JMP.&MFC42.#1168_?AfxGetModuleSta>
004611A2 |. 8B40 04 |MOV EAX,DWORD PTR DS:[EAX+4]
004611A5 |. 8B4D E4 |MOV ECX,DWORD PTR SS:[EBP-1C]
004611A8 |. FFB0 B0010000 |PUSH DWORD PTR DS:[EAX+1B0]
004611AE |. E8 DD2FFAFF |CALL WHouse2.00404190
004611B3 |. 8BF0 |MOV ESI,EAX
004611B5 |. EB 02 |JMP SHORT WHouse2.004611B9
004611B7 |> 33F6 |XOR ESI,ESI
004611B9 |> 53 |PUSH EBX ; /Arg2
004611BA |. 8BCE |MOV ECX,ESI ; |
004611BC |. FF75 F0 |PUSH DWORD PTR SS:[EBP-10] ; |Arg1
004611BF |. 885D FC |MOV BYTE PTR SS:[EBP-4],BL ; |
004611C2 |. E8 2735FAFF |CALL WHouse2.004046EE ; \WHouse2.004046EE
004611C7 |. 85C0 |TEST EAX,EAX
004611C9 |. 74 13 |JE SHORT WHouse2.004611DE
004611CB |. 8BCE |MOV ECX,ESI
004611CD |. E8 2A40FAFF |CALL WHouse2.004051FC
004611D2 |. 83F8 46 |CMP EAX,46
004611D5 |. 8BCE |MOV ECX,ESI
004611D7 |. 7F 36 |JG SHORT WHouse2.0046120F
004611D9 |. E8 4A41FAFF |CALL WHouse2.00405328
004611DE |> 3BF3 |CMP ESI,EBX
004611E0 |. 74 08 |JE SHORT WHouse2.004611EA
004611E2 |. 8B06 |MOV EAX,DWORD PTR DS:[ESI]
004611E4 |. 6A 01 |PUSH 1
004611E6 |. 8BCE |MOV ECX,ESI
004611E8 |. FF10 |CALL DWORD PTR DS:[EAX]
004611EA |> 47 |INC EDI
004611EB |. 3B7D EC |CMP EDI,DWORD PTR SS:[EBP-14]
004611EE |.^ 0F8C 24FFFFFF \JL WHouse2.00461118
004611F4 |> 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF
004611F8 |. 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]
004611FB |. E8 20020000 CALL <JMP.&MFC42.#800_??1CString@@QAE@XZ>
00461200 |. 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
00461203 |. 5F POP EDI
00461204 |. 5E POP ESI
00461205 |. 5B POP EBX
00461206 |. 64:890D 00000>MOV DWORD PTR FS:[0],ECX
0046120D |. C9 LEAVE
0046120E |. C3 RETN
0046120F |> E8 1441FAFF CALL WHouse2.00405328
00461214 |. 3BF3 CMP ESI,EBX
00461216 75 08 JNZ SHORT WHouse2.00461220
00461218 |. 8B06 MOV EAX,DWORD PTR DS:[ESI]
0046121A |. 6A 01 PUSH 1
0046121C |. 8BCE MOV ECX,ESI
0046121E |. FF10 CALL DWORD PTR DS:[EAX]
00461220 |> 53 PUSH EBX ; /ExitCode
00461221 \. FF15 D8B04600 CALL DWORD PTR DS:[<&KERNEL32.ExitProces>; \ExitProcess
00461227 . E8 5E3CFEFF CALL WHouse.00444E8A
//调用显示未注册,有功能限制,加了断点
请高手帮忙指点一下。
1.在ollydbg中看不到从哪里转到00461227的,为什么看不到从什么地方到00461227的?
2.如果是在程序开始的时候就检查是否注册了,就是在00461070的地方开始的,那哪里是检查的呢?检查哪里的呢?检查后做了哪些事情呢?
3.我该怎么做才能找到注册码呢?
希望大家不要见怪,谢谢
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!