Windows程序设计--学习笔记 (四) 使用od跟踪程序的运行

还是继续第三章的内容,这里使用OD来跟踪第三章那个程序的运行情况,看看各个函数的调用情况;

0:是如下程序:

1:把程序载入OD:

2:鼠标右键--查找(如下图),或者直接(Ctrl + N)

来到下图:

中这些函数上面设置断点,并加上注释:(如下函数)

bp DispatchMessageW
bp TranslateMessage
bp GetMessageW
bp RegisterClassW
bp CreateWindowExw
bp ShowWindow
bp UpdateWindow

3:F9运行起来:如下图:

F9运行起来,程序断在RegisterClassW 函数上面,即注册窗口类,上图右下角可以看到RegisterClassW的参数地址,在数据窗口跟踪注册的窗口类地址(按如下图操作);

依据WNDCLASS 的结构体定义,上图中的“3” 即为窗口过程函数的地址(WndProc函数的地址),按照下图操作,跟踪到WndProc函数;

定位的窗口过程函数:(如下图),然后中此函数入口处设置断点:

4:再F9运行:

运行的createWindow函数,再按照下面操作,在CreateWindowExW函数返回地址处设置断点:

定位到CreateWindowExW函数返回地址处,设置断点:

5:再F9运行:

此时会断在窗口过程处理函数那,这时候把RegisterClassW函数处的断点去掉(不去掉程序会退出,原因不详)。

一直F9运行,直到断在CreateWindowExW函数返回地址处(上图设置的断点),来到如下图:

5:再F9运行:F9一直运行下去,看看其他函数的调用;(这里不截图啦)

猜你喜欢

转载自blog.csdn.net/ixusy88/article/details/81300126