用OD手动查找窗口过程函数(classProc)

发布时间:2018-10-4 21:51

2413 0 0

admin

用户头衔:管理员

关注 私信
有时候我们用OD查找窗口的classProc地址是不正确的,这时候可以用如下方法手动查找

1. 用OD打开被调试程序
    打开 插件->API断点设置工具->常用断点设置,把CreateWindow的三个函数勾上,确定
   
2. 按F9让程序运行并在断点停下,直到在堆栈窗口观察到你要的窗口名字(本文以“计算器”为例)



3. 一路F8执行直到回到调用CreateWindowExW的代码段,并在附近找到pWndClassEx,可发现pWndClassEx的值存放在eax中,下面的RegisterClassExW就是利用pWndClassEx把窗口过程函数和窗口绑定起来的


4. 我们把断点设置在push eax这行并清空其他断点,重新运行程序到断点处,在命令行键入db eax可以查找到pWndClassEx的数据,我们用MSDN查找
pWndClassEx的数据结构如下图,可以发现窗口过程函数保存在lpfnWndProc变量中,即第三个DWORD数据

从数据窗口可以看到pWndClassEx的数据,以我查到的结果为例,窗口过程函数的地址应为0x00731EDE(这里要注意,低字节在右边)



5. Ctrl+G 键入0x00731EDE我们就可以跳转到窗口过程函数的代码啦~

---------------------本文来自 小明湖畔 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010497228 ... 045?utm_source=copy
B Color Smilies

扫码加入QQ群

842848001@qq.com
842848001

GMT+8, 2024-4-18 08:09

Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

网站内容仅供用于学习和交流,请遵循相关法律法规

QQ在线咨询|小黑屋|手机版|Archiver|一切从零开始 ( 蜀ICP备15031375号-3 )