能力值:
(RANK:260 )
|
-
-
2 楼
OD的消息断点是在ClsProc还是WndProc?
OD的消息断点功能很少用,几乎没用过。我一般都是直接找到窗口的WndProc然后Shift+F2下条件断点的。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我是按照教程上面说的下消息断点的方法下的:
用spy++找到hwnd后回到ollydbg界面
(1)首先点菜单查看->窗口,用hwnd找到那个窗口,在其上点鼠标右键,弹出右键菜单,选'在ClassProc上设消息断点'.
(2)弹出的对话框中选键盘消息,其他都是默认值。在所有窗口上中断等。
第一步右键菜单里确实是叫ClassProc,但是第二步弹出窗口的标题栏是'在WinProc上设置断点'。不知道和你说的有关系没有。另外shift F2是在什么地方点的?我在查看->窗口,选中那个窗口后,按shift+F2,没有反应。
刚开始学习,还请指教。万分感谢!
|
能力值:
(RANK:260 )
|
-
-
4 楼
点右键->跟随WndProc,在WndProc的入口处按Shift+F2,根据需要设置条件,具体条件断点的表达式写法,可以参考说明书。
比如要断WM_COMMAND,就写: [esp+8]==WM_COMMAND
比如要对某特定窗口(假设hwnd为0x12345678)下断点,就写:[esp+4]==12345678
不同的条件可以用逻辑操作符连接,如&&, ||, !。
等等。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
哦,看懂了,谢谢!现在的问题是,点右键,右键菜单中没有跟随WndProc这个选项,在查看->窗口这个列表中,WndProc这一列都是空的。
是不是这个原因呢?请问如何解决。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
另外再请教一个问题,什么样的exe会导致olly每次都认为是一个新的exe,上一次加载的断点和注释都保存不了。
这个exe确实很奇怪,跟着代码走到一些位置,当前模块会出现xxxx_12.exe 。xxxx就是exe的文件名。
要说这个exe应该是一个很基本的MFC程序,不像加过壳,调试也不是很累,就是这两点,要命。
请高手指教一下,谢谢了!
|
能力值:
(RANK:260 )
|
-
-
7 楼
只要是自修改代码,通常是壳,但不限于壳,OD就会放弃旧的UDD数据,也就是不保存断点和注释等用户数据。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
你所说的应该是程序使用了多线程吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
确实使用多线程了,这个程序联网的部分都是单独线程中完成的。
请指教一下,谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
人工顶顶。。
|
|
|