首页
社区
课程
招聘
[讨论]OD中 F9 != N个F8
发表于: 2008-9-16 03:22 5494

[讨论]OD中 F9 != N个F8

2008-9-16 03:22
5494
od中,似乎F9 就是 N个F8,可是我在调试的时候似乎不是这么回事。有时候在弹出对话框中输入——》确定后,中断,F9,又可以回到前一个对话框。可是,如果中断后,F8一直按下去,按到走不动了为止,就是这样也回不去,被调试的程序也不能正常显示了。桌面上,被调试程序窗口那一块无法还原。高手能解释一下是怎么回事吗?为什么  F9  != N个F8?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 179
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
代码如下
004096A2  /$  56            PUSH ESI
004096A3  |.  57            PUSH EDI
004096A4  |.  C8 040000     ENTER 4,0
004096A8  |.  50            PUSH EAX
004096A9  |.  89D7          MOV EDI,EDX
004096AB  |.  89DE          MOV ESI,EBX
004096AD  |.  89CB          MOV EBX,ECX
004096AF  |.  68 02030000   PUSH 302                                    ; /MemSize = 302 (770.)
004096B4  |.  6A 42         PUSH 42                                     ; |Flags = GHND
004096B6  |.  2E:FF15 E8514>CALL DWORD PTR CS:[<&kernel32.GlobalAlloc>] ; \GlobalAlloc
004096BD  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004096C0  |.  50            PUSH EAX                                    ; /hMem
004096C1  |.  2E:FF15 F0514>CALL DWORD PTR CS:[<&kernel32.GlobalLock>]  ; \GlobalLock
004096C8  |.  89C1          MOV ECX,EAX
004096CA  |.  89FA          MOV EDX,EDI
004096CC  |.  E8 EFDC0000   CALL de_RARmi.004173C0
004096D1  |.  8D81 00010000 LEA EAX,DWORD PTR DS:[ECX+100]
004096D7  |.  89F2          MOV EDX,ESI
004096D9  |.  E8 E2DC0000   CALL de_RARmi.004173C0
004096DE  |.  8DB1 00020000 LEA ESI,DWORD PTR DS:[ECX+200]
004096E4  |.  89DA          MOV EDX,EBX
004096E6  |.  89F0          MOV EAX,ESI
004096E8  |.  E8 D3DC0000   CALL de_RARmi.004173C0
004096ED  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]
004096F0  |.  66:8981 00030>MOV WORD PTR DS:[ECX+300],AX
004096F7  |.  51            PUSH ECX                                    ; /lParam
004096F8  |.  68 19954000   PUSH de_RARmi.00409519                      ; |DlgProc = de_RARmi.00409519
004096FD  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]                   ; |hOwner
00409700  |.  68 99D34300   PUSH de_RARmi.0043D399                      ; |pTemplate = "INPUT"
00409705  |.  6A 00         PUSH 0                                      ; |/pModule = NULL
00409707  |.  2E:FF15 A0514>CALL DWORD PTR CS:[<&kernel32.GetModuleHand>; |\GetModuleHandleA
0040970E  |.  50            PUSH EAX                                    ; |hInst
0040970F  |.  2E:FF15 18534>CALL DWORD PTR CS:[<&user32.DialogBoxParamA>; \DialogBoxParamA
00409716  |.  89C7          MOV EDI,EAX
00409718  |.  83F8 01       CMP EAX,1
0040971B  |.  75 0D         JNZ SHORT de_RARmi.0040972A
0040971D  |.  85DB          TEST EBX,EBX
0040971F  |.  74 09         JE SHORT de_RARmi.0040972A
00409721  |.  89F2          MOV EDX,ESI
00409723  |.  89D8          MOV EAX,EBX
00409725  |.  E8 96DC0000   CALL de_RARmi.004173C0
0040972A  |>  83FF FF       CMP EDI,-1
0040972D  |.  75 05         JNZ SHORT de_RARmi.00409734
0040972F  |.  BF 02000000   MOV EDI,2
00409734  |>  FF75 FC       PUSH DWORD PTR SS:[EBP-4]                   ; /hMem
00409737  |.  2E:FF15 F8514>CALL DWORD PTR CS:[<&kernel32.GlobalUnlock>>; \GlobalUnlock
0040973E  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]                   ; /hMem
00409741  |.  2E:FF15 EC514>CALL DWORD PTR CS:[<&kernel32.GlobalFree>]  ; \GlobalFree
00409748  |.  89F8          MOV EAX,EDI
0040974A  |.  C9            LEAVE
0040974B  |.  5F            POP EDI
0040974C  |.  5E            POP ESI
0040974D  \.  C2 0400       RETN 4
00409750  /$  53            PUSH EBX
00409751  |.  56            PUSH ESI
00409752  |.  57            PUSH EDI
00409753  |.  C8 000100     ENTER 100,0
00409757  |.  B9 40000000   MOV ECX,40
0040975C  |.  8DBD 00FFFFFF LEA EDI,DWORD PTR SS:[EBP-100]
00409762  |.  BE D0FD4300   MOV ESI,de_RARmi.0043FDD0
00409767  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[E>
00409769  |.  68 00010000   PUSH 100                                    ; /Arg1 = 00000100
0040976E  |.  A1 C4674400   MOV EAX,DWORD PTR DS:[4467C4]               ; |
00409773  |.  8B98 A4050000 MOV EBX,DWORD PTR DS:[EAX+5A4]              ; |
00409779  |.  8BB0 A0050000 MOV ESI,DWORD PTR DS:[EAX+5A0]              ; |
0040977F  |.  2E:FF15 6C534>CALL DWORD PTR CS:[<&user32.GetFocus>]      ; |[GetFocus
00409786  |.  8D8D 00FFFFFF LEA ECX,DWORD PTR SS:[EBP-100]              ; |
0040978C  |.  89F2          MOV EDX,ESI                                 ; |
0040978E  |.  E8 0FFFFFFF   CALL de_RARmi.004096A2                      ; \de_RARmi.004096A2
00409793  |.  83F8 01       CMP EAX,1
00409796  |.  75 68         JNZ SHORT de_RARmi.00409800
00409798  |.  8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0040979E  |.  E8 5CFBFFFF   CALL de_RARmi.004092FF
004097A3  |.  85C0          TEST EAX,EAX
—— Crack Tutorial 说“TEST    测试.(两操作数作与运算,仅修改标志位,不回送结果)”. 可是我发现,执行完TEST后,标志位并未改变啊。不过执行TEST前,EAX已经是0了。
004097A5  |.  75 37         JNZ SHORT de_RARmi.004097DE
——JZ、JNZ到底是依据哪个寄存器跳转的呢?Crack Tutorial 说依据Z标志位跳,可是似乎应该是依据EAX的值跳的?
004097A7  |.  8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
004097AD  |.  E8 85FCFFFF   CALL de_RARmi.00409437
004097B2  |.  6A 40         PUSH 40                                     ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004097B4  |.  A1 C4674400   MOV EAX,DWORD PTR DS:[4467C4]               ; |
004097B9  |.  FFB0 A0050000 PUSH DWORD PTR DS:[EAX+5A0]                 ; |Title
004097BF  |.  FFB0 A8050000 PUSH DWORD PTR DS:[EAX+5A8]                 ; |Text
004097C5  |.  2E:FF15 6C534>CALL DWORD PTR CS:[<&user32.GetFocus>]      ; |[GetFocus
004097CC  |.  50            PUSH EAX                                    ; |hOwner
004097CD  |.  2E:FF15 C8534>CALL DWORD PTR CS:[<&user32.MessageBoxA>]   ; \MessageBoxA
——此处下断后,如果F9能跳出一个MessageBox,但如果F8就走不下去了。
004097D4  |.  B8 01000000   MOV EAX,1
004097D9  |.  C9            LEAVE
004097DA  |.  5F            POP EDI
004097DB  |.  5E            POP ESI
004097DC  |.  5B            POP EBX
004097DD  |.  C3            RETN
004097DE  |>  6A 30         PUSH 30                                     ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
004097E0  |.  A1 C4674400   MOV EAX,DWORD PTR DS:[4467C4]               ; |
004097E5  |.  FFB0 A0050000 PUSH DWORD PTR DS:[EAX+5A0]                 ; |Title
004097EB  |.  FFB0 AC050000 PUSH DWORD PTR DS:[EAX+5AC]                 ; |Text
004097F1  |.  2E:FF15 6C534>CALL DWORD PTR CS:[<&user32.GetFocus>]      ; |[GetFocus
004097F8  |.  50            PUSH EAX                                    ; |hOwner
004097F9  |.  2E:FF15 C8534>CALL DWORD PTR CS:[<&user32.MessageBoxA>]   ; \MessageBoxA
00409800  |>  31C0          XOR EAX,EAX
00409802  |.  C9            LEAVE
00409803  |.  5F            POP EDI
00409804  |.  5E            POP ESI
00409805  |.  5B            POP EBX
00409806  \.  C3            RETN
2008-9-16 03:27
0
雪    币: 179
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
想破解4位的RAR密码,可惜这个软件不注册的话只能破3位。于是正好又可以试试我的破解技术。脱壳,bp messagebox,断下来了,改JE为JNE就可以显示注册成功,可惜他还是不给你算。不知道还有什么诀窍,高人指点一二。
上传的附件:
2008-9-16 04:19
0
游客
登录 | 注册 方可回帖
返回
//