首页
社区
课程
招聘
[原创] MFC逆向之CrackMe Level3 过反调试 + 写注册机(一)
发表于: 2023-3-19 03:53 17705

[原创] MFC逆向之CrackMe Level3 过反调试 + 写注册机(一)

2023-3-19 03:53
17705

各位大佬早上好,我是你们好朋友旺仔,今天我来分享一下,过反调试的方法以及使用IDA还原代码 + 写注册机的过程

由于内容太多,我准备分为两个帖子写,这个帖子主要是写IDA还原代码,下一个帖子是写反调试的分析以及过反调试和异常


这个CrackMe Level3是一个朋友发我的,我也不知道他在哪里弄的,我感觉挺好玩的,对反调试 异常 以及代码还原的学习有一些帮助

反调试原文链接:https://blog.csdn.net/liuhaidon1992/article/details/103888101

C++异常处理的学习笔记:https://bbs.kanxue.com/thread-273332.htm

IDA如何使用:https://www.jianshu.com/p/ee0fcf93c8e7


调试器:X64和OD

反编译工具:IDA

PE工具:Detect It Easy

反调试插件:OD的StrongOD和虫子的ScyllaHide

ARK工具:Pchunter

MFC工具:MfcSpy

第一步先看看PE文件 工具说:软件是使用2008的MFC写的

上面得知是MFC写的软件,我们可以利用MFC的RTTI(动态类型识别)获取信息,如果不是MFC写的,我们可以运行一下软件看看,有没有报错信息

当然这个软件,输入注册码点击注册没有任何提示

打开调试器附加看看字符串,结果软件会闪退,无法附加,估计是有反调试,遇到这种情况我有三种方式可以解决

第一种:静态分析解决反调试

第二种:使用ARK工具把软件暂停,然后在用调试器附加

第三种:直接使用调试器打开程序,让软件断到入口或者系统断点

我们先使用第二种吧,因为X32调试器对中文字符串的支持不是很好,我没有装插件,所以先用OD看看字符串吧

验证函数中有一个异常 OD的反汇编已经出现了BUG,可以使用删除分析,我这里就不删除了 直接打开IDA F5吧

可以看到IDA的F5也被废掉了的

虽然不能F5 但是我们可以很清晰的看到,两个GetWindowText 估计一个是获取用户名 一个是获取密码


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2024-6-21 23:21 被旺仔_小可爱编辑 ,原因:
上传的附件:
收藏
免费 14
支持
分享
最新回复 (7)
雪    币: 27071
活跃值: (63057)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2

感谢分享,将附件上传论坛一份,防止外面链接时间长了会失效。

上传的附件:
2023-3-19 10:21
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
牛逼旺仔 顶了
2023-3-19 13:18
0
雪    币: 3278
活跃值: (5375)
能力值: ( LV6,RANK:92 )
在线值:
发帖
回帖
粉丝
4
还有一个tvm版本的,正哥也整一个
2023-3-19 16:24
0
雪    币: 500
活跃值: (915)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
旺仔666!前排学习
2023-3-19 19:55
0
雪    币: 134
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
学习了
2023-3-29 08:09
0
雪    币: 569
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
请问你用的IDA是哪个版本,为什么我这里设置好数组以后它并没有给我识别成memset,而是每个数组的成员进行赋值
2023-6-5 11:37
0
雪    币: 1819
活跃值: (2728)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
mi-key 请问你用的IDA是哪个版本,为什么我这里设置好数组以后它并没有给我识别成memset,而是每个数组的成员进行赋值
7.5或者7.6 忘记了
2023-6-27 09:15
0
游客
登录 | 注册 方可回帖
返回
//