I
import
Unregistered / Unconfirmed
GUEST, unregistred user!
JamShellBrowser
:mikedeakins, 时间:2001-6-11 11:10:57, ID:561930
shellbrowser.dcu:
85 C0 74 10 6A 00 68 30 01 00 00 E8 00 00 00 00 85 C0 75 18 改为
90 90 90 90 EB
0000009D : 76 EA JBE -22; (0x89)
0000009F : 6A 00 PUSH $00
000000A1 : 68(20 01 00 00 PUSH ShellBrowser{0x37F}+$00000120
000000A6 : E8(00 00 00 00 CALL FindWindow{0x138}
000000AB : 85 C0 TEST EAX,EAX
000000AD : 74 10 JE +16; (0xBF)
000000AF : 6A 00 PUSH $00
000000B1 : 68(30 01 00 00 PUSH ShellBrowser{0x37F}+$00000130
000000B6 : E8(00 00 00 00 CALL FindWindow{0x138}
000000BB : 85 C0 TEST EAX,EAX
000000BD : 75 18 JNE +24; (0xD7)
000000BF : 6A 30 PUSH $30
000000C1 : B9(44 01 00 00 MOV ECX,ShellBrowser{0x37F}+$00000144
000000C6 : BA(54 01 00 00 MOV EDX,ShellBrowser{0x37F}+$00000154
000000CB : A1(00 00 00 00 MOV EAX,DWORD PTR [Application{0xB5}]
000000D0 : 8B 00 MOV EAX,DWORD PTR [EAX]
000000D2 : E8(00 00 00 00 CALL TApplication.MessageBox{0xBB}
000000D7 : 33 C0 XOR EAX,EAX
000000D9 : 5A POP EDX
000000DA : 59 POP ECX
000000DB : 59 POP ECX
000000DC : 64 89 10 MOV DWORD PTR FS:[EAX],EDX
000000DF : 68(EC 00 00 00 PUSH ShellBrowser{0x37F}+$000000EC
这就是带有限制的源代码。还是那个原理,要想判断是不是在 delphi 内,必须使用
FindWindow,这个程序更简单:它显示了消息对话框,你只要用 dede 反汇编,然后
搜索 MessageBox 就可以马上定位到这里,又有 FindWindow,确定无疑。第一部分修
改,原来的意思是跳转到显示对话框的代码,我们不让他跳转,改为 NOP 指令(90)
第二部分是非零跳转到正常执行。好了,我们使用 JMP,让他总是跳转到正常执行。
希望对你有所帮助。 - Mike
:mikedeakins, 时间:2001-6-11 11:10:57, ID:561930
shellbrowser.dcu:
85 C0 74 10 6A 00 68 30 01 00 00 E8 00 00 00 00 85 C0 75 18 改为
90 90 90 90 EB
0000009D : 76 EA JBE -22; (0x89)
0000009F : 6A 00 PUSH $00
000000A1 : 68(20 01 00 00 PUSH ShellBrowser{0x37F}+$00000120
000000A6 : E8(00 00 00 00 CALL FindWindow{0x138}
000000AB : 85 C0 TEST EAX,EAX
000000AD : 74 10 JE +16; (0xBF)
000000AF : 6A 00 PUSH $00
000000B1 : 68(30 01 00 00 PUSH ShellBrowser{0x37F}+$00000130
000000B6 : E8(00 00 00 00 CALL FindWindow{0x138}
000000BB : 85 C0 TEST EAX,EAX
000000BD : 75 18 JNE +24; (0xD7)
000000BF : 6A 30 PUSH $30
000000C1 : B9(44 01 00 00 MOV ECX,ShellBrowser{0x37F}+$00000144
000000C6 : BA(54 01 00 00 MOV EDX,ShellBrowser{0x37F}+$00000154
000000CB : A1(00 00 00 00 MOV EAX,DWORD PTR [Application{0xB5}]
000000D0 : 8B 00 MOV EAX,DWORD PTR [EAX]
000000D2 : E8(00 00 00 00 CALL TApplication.MessageBox{0xBB}
000000D7 : 33 C0 XOR EAX,EAX
000000D9 : 5A POP EDX
000000DA : 59 POP ECX
000000DB : 59 POP ECX
000000DC : 64 89 10 MOV DWORD PTR FS:[EAX],EDX
000000DF : 68(EC 00 00 00 PUSH ShellBrowser{0x37F}+$000000EC
这就是带有限制的源代码。还是那个原理,要想判断是不是在 delphi 内,必须使用
FindWindow,这个程序更简单:它显示了消息对话框,你只要用 dede 反汇编,然后
搜索 MessageBox 就可以马上定位到这里,又有 FindWindow,确定无疑。第一部分修
改,原来的意思是跳转到显示对话框的代码,我们不让他跳转,改为 NOP 指令(90)
第二部分是非零跳转到正常执行。好了,我们使用 JMP,让他总是跳转到正常执行。
希望对你有所帮助。 - Mike