MFC42.dll 按钮事件总结规律

阅读了“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,来到00401480。OK,搞定。

(3)更简单的方法。

重新载入TraceButtonDynamic.exe。Alt+ 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下断即可。

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

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

2000-09-17

By littlewisp

时间: 2024-10-26 10:30:19

MFC42.dll 按钮事件总结规律的相关文章

用特征码秒杀各程序语言按钮事件

作者:小童工具:OllyDbg.Delphi程序一个.易语言程序一个.MFC程序一个----------------------------------------------------------------------------------------------------------------------------------------------------------<<<Delphi程序>>>特征码:FF 93 20 01 00 00 5B C3

IDA学习笔记--VS2008按钮事件捕捉

http://blog.csdn.net/ccnyou/article/details/8521611 IDA笔记--VS2008按钮事件捕捉 用到工具: IDA Proc C32Asm Rescope VS2008 LordPE 实例程序:MFCDemo.exe(附下载链接),我们目标是找到Button1对应的函数的地址处 附件包含:博客文章原文文档,文章中用到的MFCDemo程序. 下载链接:http://download.csdn.net/detail/ccnyou/5012040 1,首

iOS代码实现:创建按钮,绑定按钮事件,读取控件值

// // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rights reserved. // #import <UIKit/UIKit.h> // 视图控制器对象 @interface HelloWorldViewController : UIViewController @property (nonatomic, retain) IBOutlet UIT

android开发步步为营之22:处理Activity中的back按钮事件

在手机应用中,用户点击回退按钮一般是返回上个页面,一般页面不用处理,如果在首页,点回退,没任何提示,就把应用给关了,这个用户体验就不太好了,所以一般都会给用户一个确认的提示:是否退出?免得用户误操作. 一. Activity 中处理 @Override public boolean onKeyDown( int keyCode, KeyEvent event) { // TODO Auto-generated method stub Toast.makeText( this , "onkeydo

安卓之页面跳转与传值和按钮事件

一:新建页面 即新建Activity,new-other-Android Activity,next, 新建Activity的时候, 1:eclipse会自动创建Layout,我们发现Layout目录下会多了对应的xml文件: 2:ec会自动在AndroidManifest.xml中创建对应的activity节点: 需要注意的是,这些都是ec帮我们自动创建的,我们完全可以手动创建 class,然后让它继承自activity,然后指定layout的那个xml,然后手动创建节点完成. 二:点击按钮进

Ugui按钮事件添加方法

按钮事件添加方法3个例子 Eg1: using UnityEngine; using System.Collections; using UnityEngine.Events;//引用事件命名空间 using UnityEngine.UI;//引用UI命名空间 public class Test : MonoBehaviour { // Use this for initialization void Start () { //定义Action,并赋予delegate方法 UnityAction

MVC中使用内建的HTML辅助方法产生表单元素提交表单与button按钮事件的陷阱

网站模板页有个登陆的退出按钮,当点击时跳转到登陆页面. <button onclick="logout()" >退出</button> $("#logOut").click(function () { location.href = "@Url.Action("Logout", "Account")"; }); 然后再某个页面楼主用了HTML辅助方法产生表单元素,代码如下所示: @H

ubuntu下wine打开自由们找不到MFC42.DLL重新安装的解决方法

一直在找ubuntu下的X墙工具,看到大部分的都是ssh和tor的,但是tor下载不到,找了很多方法,没有办法,只能用FG了.但是Fg是运行在windows系统下的程序. 只好再安装一遍wine,用终端安装:sudo apt-get install wine 这个默认的好像是将winetricks也安装上了,在软件源中安装的话没有winetricks好像. winetricks是一个简单的wine程序管理工具,可以通过这个下载一些程序和dll文件,还有游戏之类的,很强大. 下载wine大概有75

导航栏切换按钮事件

同事写的一段代码,不是很难,但感觉不错保存起来 // 导航栏切换按钮事件 $('ul.main-tab>li').on('mousedown', function() { var $this = $(this), $box = $('.main-tab-content'), i = $this.index(); if ($this.hasClass('on')) { return false; } switch (i) { case 0: break; case 1: updateRadarTa