天天挂茶馆
设为首页
收藏本站
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
微信扫码,快速开始
快捷导航
论坛
BBS
钱包
任务大厅
联系站长
试看VIP
加入外部QQ群
办理VIP
教程目录
音乐厅
工具下载
搜索
搜索
热搜:
C++
本版
帖子
用户
挂茶馆易语言论坛
»
论坛
›
游戏数据
›
数据逆向
›
用OD手动查找窗口过程函数(classProc)
返回列表
发新帖
查看:
2745
|
回复:
0
用OD手动查找窗口过程函数(classProc)
[复制链接]
admin
admin
当前在线
积分
429745
发布(
1
)
承接(
0
)
224
主题
469
回帖
42万
积分
管理员
积分
429745
收听TA
发消息
发表于 2018-10-4 21:51:13
|
显示全部楼层
|
阅读模式
有时候我们用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
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
快速回复
返回顶部
返回列表