160个CrackMe之108:mfc程序按钮事件寻找与代码还原(上篇)

查看原文可搜索【极安御信安全研究院】公众号查看原文!

·前言 

虽然网上已经有帖子写160个CrackMe,我个人还是以正向的思路来逆向一部分的crackme,还有一些 代码还原的小技巧,挑选出这160个CrackMe中由c,c++,汇编编写的程序来来写。vb,delphi现在用 的少些了就不拿来写了。 

·思路分析 

先判断该程序是啥语言写的用工具查看一下 

是vc6的mfc编写的现在先运行下程序 寻

 

找按钮Check的按钮事件 该程序是mfc编写的,我自己写个例子,来找按钮事件 vs2019创建mfc工程后增加个按钮事件

双击Button1 写一个弹出对话框的代码

mfc是怎么知道这个按钮事件的呢,实际是通过映射消息,代码为

  这些都是宏定义,按下F12进去看 

·把这些宏代码展开为 

· __pragma和#pragma之间有什么区别

 

·去掉不要的宏定义与代码

现在替换ON_BN_CLICKED宏

·替换后的代码 

·OnBnClickedButton1地址写在了_messageEntries数组这个结构体中,现在看看这个结构体定义

·那我的按钮事件就为

·用x64dbg打开该程序,内存搜索 

·一定要用鼠标左键点击 开始的00280000地址,这样搜索就会从00280000开始查找,如果你从00c94000开始的话,00280000至00c94000这段内存就不会搜索 了 

跟过去看看 

00CA07FB就是OnBnClickedButton1函数地址

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空