使用IDA对MFC寻找按钮处理事件
2013-06-29 19:02
1011 查看
由于我练习的都是MFC程序,在寻找按钮事件的时候,费了老鼻子劲了,当初说的,根据DispatchMessage,TranslateMessage,下条件断点神马的,笔者,试了又试,在里面消
息转了又转,就是出不来,放下了一段时间,但是不甘心,最后找到了一篇很好的文章点击打开链接,让我有了很好的启发,对于自己做的小程序而言,已经足够了,现在说下,
我自己写的这篇水平实在有些哇,高手不要见笑啊,好了不说废话了,现在开始,
我的MFC界面如下
现在需要做下说明,确定和取消是由向导自动生成的,所以在GetMessageMap中是不会有的,现在我们要找的是Check按钮事件,现在IDA已经能够识别GetMessageMap函数
了,所以看下具有GetMessageMap函数
会看到,如下
所以GetMessageMap的处理函数,是在偏移量是 offset off_4039D0中,只需要轻轻点击一下,便能进入MessageMap下的函数
然后再点击下unk_403940,就看到下面的各个函数列表了,唉,我越来越觉得,真是鸡肋啊...
对于这样的我想,应该是在某一个dll文件中了怎么继续寻找,还希望哪位路过的大神告知一下,下一步的学习,嗯,就到这儿了
息转了又转,就是出不来,放下了一段时间,但是不甘心,最后找到了一篇很好的文章点击打开链接,让我有了很好的启发,对于自己做的小程序而言,已经足够了,现在说下,
我自己写的这篇水平实在有些哇,高手不要见笑啊,好了不说废话了,现在开始,
我的MFC界面如下
现在需要做下说明,确定和取消是由向导自动生成的,所以在GetMessageMap中是不会有的,现在我们要找的是Check按钮事件,现在IDA已经能够识别GetMessageMap函数
了,所以看下具有GetMessageMap函数
会看到,如下
.text:00401560 ; AFX_MSGMAP *__thiscall CTMPDlg__GetMessageMap(CTMPDlg *this) .text:00401560 protected: virtual struct AFX_MSGMAP const * __thiscall CTMPDlg::GetMessageMap(void)const proc near .text:00401560 ; DATA XREF: .rdata:00403A24o .text:00401560 this = ecx .text:00401560 mov eax, offset off_4039D0 .text:00401565 retn .text:00401565 protected: virtual struct AFX_MSGMAP const * __thiscall CTMPDlg::GetMessageMap(void)const endp
所以GetMessageMap的处理函数,是在偏移量是 offset off_4039D0中,只需要轻轻点击一下,便能进入MessageMap下的函数
rdata:004039D0 off_4039D0 dd offset CDialogEx::GetThisMessageMap(void) .rdata:004039D0 ; DATA XREF: CTMPDlg::GetMessageMap(void)o .rdata:004039D4 dd offset unk_403940 .rdata:004039D8 aDsada: ; DATA XREF: CTMPDlg::OnBnClickedButton1(void)+54o .rdata:004039D8 unicode 0, ,0 .rdata:004039E4 ; const wchar_t Text .rdata:004039E4 Text db '搹eQ',9,'g飲',0 ; DATA XREF: CTMPDlg::OnBnClickedButton1(void)+69o .rdata:004039ED align 10h .rdata:004039F0 dd offset const CTMPDlg::`RTTI Complete Object Locator'
然后再点击下unk_403940,就看到下面的各个函数列表了,唉,我越来越觉得,真是鸡肋啊...
.text:006BEEEE protected: virtual struct AFX_MSGMAP const * __thiscall CCoolCheckRadio::GetMessageMap(void)const proc near .text:006BEEEE ; DATA XREF: .rdata:007305CCo .text:006BEEEE jmp ds:CCoolCheckRadio::GetMessageMap(void) .text:006BEEEE protected: virtual struct AFX_MSGMAP const * __thiscall CCoolCheckRadio::GetMessageMap(void)const endp
对于这样的我想,应该是在某一个dll文件中了怎么继续寻找,还希望哪位路过的大神告知一下,下一步的学习,嗯,就到这儿了
相关文章推荐
- 使用MFC 发送消息模拟按钮按下事件
- 使用IDA定位基于MFC的CrackMe的按钮函数-----理论篇
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- MFC 窗口按钮的鼠标事件(对于中文和英文按钮的处理)问题
- 使用MFC 发送消息模拟按钮按下事件
- UIAlertView的基本使用和对话框中按钮的事件处理方法
- 使用jQuery的validation后,无法引发asp.net按钮的事件处理程序
- vs2013版MFC按钮点击无反应,执行不到相应的事件处理程序
- 使用MFC 发送消息模拟按钮按下事件
- VC++使用PreTranslateMessage函数处理点击按钮区域响应事件
- 使用arguments对象处理兼容各浏览器的键盘按钮事件
- Repeater嵌套使用及按钮事件处理
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- 下面的示例演示如何使用传递到事件处理方法的 GridViewCommandEventArgs 对象确定引发事件的按钮的命令名。
- MFC寻找按钮事件
- 使用MFC 发送消息模拟按钮按下事件
- 使用MFC 发送消息模拟按钮按下事件
- [Asp.Net]Repeater嵌套使用及按钮事件处理