扫一扫,访问微社区

QQ登录

只需一步,快速开始

OD找CALL之模态与非模态对话框定位

[ 复制链接 ]
对话框是一个程序中常用的界面显示形式。
比如一些错误信息,注册信息都可以以对话框形式显示出来。
这就是一个极为有利的关键点。
当然显示信息的形式还有消息对话框,对应函数为MessageBox等。
关于消息对话框的定位已经在前面帖子介绍过了。

这里介绍一个两种对话框的定位,如何一步步找CALL。
创建模态对话框是由调用DialogBoxParam 函数实现的,而创建非模态对话框是调用CreateDialogParam函数实现。
两函数原型分别是:
HWND DialogBoxParam (HINSTANCE hlnstance, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROC IPDialogFunc, LPARAM dwlnitParam);
HWND CreateDialogParam (HINSTANCE hlnstancem, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROCIpDialogFunc,  LPARAM dwlniParam);
可以使用查找MessageBox的相同方法,用指令 (bp 函数名)来定位。也可以用这里介绍的方法。
方法关键点是从参数1入手来定位函数。
参数1为对话框句柄,如何查看这些句柄呢?
得借助一个工具exescope.exe,工具在尾部供下载使用。
使用此工具事先打开要逆向的软件,如下图,可以根据界面相关信息找到对话框句柄。
2020-02-28_170219.jpg
图中随意打开了一个软件,在界面右边,资源,对话框,100就是一个对应对话框的句柄。
句柄100为十进制,转换十六进制为0x64.
有了这个值后,我们就可以在OD中查找指令 push 0x64。
在注意的是OD中此指令一般肯定不值一个,而我们要找的多数情况只有一个。
所以还有一步过滤。
具体操作如下。
在OD汇编窗口,鼠标右键,查找,所有命令,会弹出窗口显示出全部已找到的命令。
2020-02-28_170840.jpg

后面就是在这些结果中筛选我们要的那个对话相关的命令。
在此窗口,鼠标右键,在每个命令上设置断点。
重新操作软件,执行弹出对话框的操作。
这样OD就会定位到与对话框相关的push 0x64命令上,
从而实现对话框找CALL功能。
上面提到的工具下载。
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:eXeScope650.rar 
文件大小:470.5 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买VIP]   [充值积分]   有问题联系我





回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索