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

·分析该CrackMe按钮事件

这个check就是个按钮,现在用visual studio提供的工具看看这个按钮id

·选择自己的Spy++(不会用的话百度查一下)

找到check按钮id是1

·那该程序的检查按钮事件就为

找到按钮事件地址 795E7980

·地址795E7980的汇编代码看着有点怪异的是因为这里是虚函数调用(vcall) 执行到795E798D jmp eax f7跟进去后来到真正的按钮事件地址

·现在来讲讲vcall,写了个小例子

·执行的结果

 

#### 而myvirfunc1 myvirfunc2函数真正的地址为

现在00FB1084与00FB1088代码组合

是不是和地址795E7980代码很相似

·vcall 的作用

调整这个指针到真正的虚函数中

·现在看看代码还原

ida打开该程序跳转00401512

·因为该程序是vc6写的,我自己也用vc6写了一份,因为该crackme引用的dll是 MFC42.DLL 明说不是Debug编译的,Debug编译的是用的MFC42D.DLL,所以

选择用Release编译,第二因为该crackme是用ebp寻找的局部变量,说明没有开 o2优化编译,我个人就选择的无优化编译,最后生成的二进制和原版还有略有差异

·最后输入秘钥 实现破解

·完成自己代码还原的mfc程序以打包到附件了

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空