MFC的逆向工程

C++程序正向编译逆向反编译(一) 逆向工程师必须先是一个正向开发工程师,如果没有C++/MFC的开发经验,就不会懂得如何逆向分析C++/MFC的程序,本文完成一个helloworld的C++正逆向过程。 阅读详情

例子test.exe(向导生成的做了6个按钮,必须有mfc42.dll才能够运行)

原以为MFC的逆向工程和SDK一样简单,但是跟踪之后就发现自己想错了。在程序种根本找不到消息的处理过程,也就是说没有办法在像在SDK中那样增加功能了(修改功能比较容易的,替换原来的处理过程即可)。郁闷之间去查类库了,发现一个很有用的成员函数CWnd.DefWindowProc,于是在这个函数调用处下断点。果然,由这个函数转入mfc42.dll中的默认函数。

嘿既然不能够修改mfc42.dll那么就修改这个函数的调用。

使用资源黑客打开test.exe添加一个按钮id为1006,其他的随意。

004016DE   .- FF25 D8204000 JMP     DWORD PTR DS:[<&MFC42.#2385_?Def>; <-------修改这里MFC42.#2385_?DefWindowProcA@CWnd@@MAEJIIJ@Z

因为CWnd.DefWindowProc是三个参数,所以在调用这个函数的时候在堆栈里由3个参数,分别为消息代码,WPARAM、LPARAM

004016DE   . /E9 7D030000   JMP     test.00401A60           修改为,跳转到自己的处理过程。

-----------添加的过程----------------

00401A60   > /55            PUSH    EBP&n

第5章 IDA Pro 破解实战 第5章 IDA Pro 破解实战 1、工具IDA Pro 6.6版本   1、定位关键码   1)      搜索特殊字符串 首先按下快捷键CTRL+S 打开段选择对话框,双击STRINGS段跳转到字符串段,然后按下ALT+T,打开文本搜索对话框,在String旁边的文本框输入要搜索的字符串后点击OK按钮,稍等片刻就会定位到搜索结果。 2)      搜索关键API 首先按下快捷键 阅读详情

相关推荐

攻防世界逆向高手题之mfc逆向-200

攻防世界逆向高手题之mfc逆向-200 继续开启全栈梦想之逆向之旅~ 这题是攻防世界逆向高手题的mfc逆向-200 MFC类型的题目基本没接触过,现阶段也不想入门MFC语法,所以只能大量搜寻资料学个大概了。 . . 照例下载附件,扔入exeinfope中查看信息: . . 照例运行一下查看主要回显信息: 首先第一步看暗示,题目提示是MFC程序,这首先就是一个暗示,然后这里说Flag在控件里,这也是一个暗示。 . . 在这之前我们先了解一下怎么用工具获取MFC程序的控件:(总不能为了做题而做题吧) 以下

沐一 · 林 的博客 3719

Windows逆向学习笔记——MFC原理:RTTI和消息映射 在逆向中的应用

test

weixin_38526180的博客 1337

MFC逆向流程

以前没有认真解出过MFC的题目,自上次和师姐一起研究完病毒,似乎打通了任督二脉?今天竟然两个都解出来了,不过比较简单,也还是很开心啦~~~ 题目链接:链接: https://pan.baidu.com/s/1qjp05vO0FWJXhVrGUndbbA 密码: v8bt 第一题 CrackMe2.exe 先运行一下 首先Resource Hacker查找资源,得到Resource。 ...

Sanky0u的博客 7550

《黑客免杀攻防学习笔记》——MFC初探

转载请注明出处http://blog.youkuaiyun.com/wuyangbotianshi 注:下面文章中谈到的作者都是《黑客免杀攻防》的作者,并不是本文的作者。 由于之前的C++逆向知识比较简单,所以第9章就只记录两个实验,一个就是这个初探MFC实验,另外一个就是探索C++的菱形继承。 1.MFC基础          逆向具有MFC框架的程序并不一定要跟踪MFC框架代码,是否需要这样做取决

Traxer的学习之路 3636

逆向实战:MFC程序控件消息映射的破解之道

本文深入探讨了MFC程序逆向工程的核心技术——破解控件消息映射。通过实战演示,详细介绍了如何使用SPY++定位窗口句柄,并利用XSPY工具探查MFC内部消息映射表,最终通过编写代码发送特定消息来触发隐藏逻辑。该方法对于安全研究、漏洞挖掘及CTF竞赛(如攻防世界)中的MFC程序分析具有重要价值,提供了一套高效的“黑盒”变“白盒”的逆向实战思路。

game4的博客 659

反编译工具(DLL 转c/c++ 工具)

反编译工具(DLL 转c/c++ 工具); 内有工具使用说明。

基于X86的C/C++ 反编译器

熬夜一年多,终于把C/C++语言反编译器的演示版本搞出来了! 目前C语言的基本反编译功能已完成,C++部分刚刚开了个头,正在开发中。此版本非常不稳定,仅做演示用!它能很好的反编译自带的56个测试例子,但对于大家自己提供的测试例子可能会有问题!大家若进行测试,建议使用简单例子,可以修改56个例子反编译出来的结果,重新编译生成新的测试例子。 56个例子中,绝大部分是采用VC2003进行编译的,有debug版本和release版本。VC6,VC2005,VC2008各有4个测试例子,分别是采用向导生成的console和win32程序,分为debug版本和release版本。 孤军奋战很累,发布该演示版本,只为广交志同道合的朋友,寻求合作机会,并听听大牛们的看法和意见。 我的邮箱:kawarchen@gmail.com 网站: http://www.c-decompiler.com 任何更新会在该网站发布。

Windows Server 2016上,手把手教你搭建MDT 8456自动化部署环境(含ADK 2004与WDS配置)

本文详细指导在Windows Server 2016上搭建MDT 8456自动化部署环境,涵盖ADK 2004与WDS配置全流程。通过标准化操作系统部署、应用程序静默安装和驱动程序注入,实现企业级自动化部署解决方案,显著提升IT运维效率。特别针对兼容性问题和权限陷阱提供实战解决方案。

weixin_29876033的博客 388

HWSD全球土壤数据下载处理

下载地址: http://www.fao.org/soils-portal/soil-survey/soil-maps-and-databases/harmonized-world-soil-database-v12/en/

江北20190411的博客 3万+

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 260

RAGFlow升级指南(纯小白都看得懂)

升级背景:RAGFlow项目原来的版本是0.17.0版本,在使用过程中,发现当知识库检索为空的时候并且使用到rerank模型的时候,就会输出错误的信息;为了解决这个版本问题,特意升级到最新的版本0.17.2(截止2025-3-14时最新版本就是0.17.2了)官方升级文档https://ragflow.io/docs/dev/upgrade_ragflow官方文档对小白还是不太友好,作者也是捣鼓了十多分钟,特出下面的升级指南前提:旧版本的RAGFlow项目是启动好了的1.在ragflow目录下执行(拉取最新

Ven%的博客 3596

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

专注生信领域 663

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

Python3实现基于ARIMA模型来预测茅台股票价格趋势

ARIMA(Autoregressive Integrated Moving Average)模型是一种广泛使用的时间序列分析方法,它可以用于对未来的数据进行预测。ARIMA模型由自回归模型(AR模型)、差分整合模型(I模型)和移动平均模型(MA模型)组成,因此也被称为ARIMA(p,d,q)模型。其中,p表示自回归阶数,d表示差分阶数,q表示移动平均阶数。具体来说,ARIMA模型可以通过以下步骤进行建模:数据预处理:对时间序列进行平稳性检验,如果不满足平稳性,则进行差分操作。

m0_64336780的博客 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 一个不常用的小技巧
下一篇: IDA Plugin 编写基础
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值