码迷,mamicode.com
首页 > 编程语言 > 详细

MFC42.dll 按钮事件总结规律

时间:2015-04-14 07:06:41      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

 

 

阅读了“MFC程序逆向 – 消息篇()+()”一文后,收获颇丰。作者提到对于对话框程序,在这个函数函数入口处设置断点最好(请记住这个函数:CCmdTarget::OnCmdMsg())。在学习的过程中,对OD的一些使用方法进一步加深了理解。

首先用VC6.0建立一个基于对话框的MFC程序,分别采用动态链接(TraceButtonDynamic.exe)和静态链接(TraceButtonStatic.exe)生成。

1. 动态链接的程序分析

1)首先用IDA找到CCmdTarget::OnCmdMsg()的地址。在我的计算机中为0040157C.

 技术分享

2)用OD载入,CTRL+G,输入0040157C,来到0040157C 。

 技术分享

可以看到有一jmp语句,Enter进入。这里就是:OnCmdMsg()的入口处。

 技术分享

            向下翻倒push    dword ptr [eax+14], F2下断,运行程序。

 技术分享

 

单击“hello,world”按钮,可以看到00401480,就是按钮所处理的东西。

 技术分享

       CTRL+G,输入00401480,来到00401480OK,搞定。

 技术分享

      (3)更简单的方法。

          重新载入TraceButtonDynamic.exeAlt+ E,载入DLL模块,双击MFC42.

         7技术分享

         来到MFC42.dll

 技术分享

CTRL+S, 输入

push    dword ptr [ebp+14]

push    dword ptr [eax+10]

push    dword ptr [ebp+10]

push    dword ptr [eax+14]

push    dword ptr [ebp+C]

push    dword ptr [ebp+8]

 

单击查找。

 技术分享

 

 

 

在“push    dword ptr [eax+14]”, F2下断即可

2. 静态链接的程序分析。

Od载入。CTRL+S,输入指令序列。

 技术分享

     单击查找,在“push    dword ptr [eax+14]”, F2下断即可。

 

 技术分享

当然还可以在语句序列下面的callF7进入(本例为call    004157F5)。进入后,直接在“call    dword ptr [ebp+14]”这条语句出下断。当然可以用搜索的方法。

 

 技术分享

 

 

以上是本人的一些学习心得,不妥之处,敬请指正。

                                                                  2000-09-17

                                                                  By littlewisp

MFC42.dll 按钮事件总结规律

标签:

原文地址:http://www.cnblogs.com/mayingkun/p/4423791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!