首页
社区
课程
招聘
[原创]第二个CM的制作过程及源码和注册机
发表于: 2010-1-18 22:29 6951

[原创]第二个CM的制作过程及源码和注册机

2010-1-18 22:29
6951

CM地址:http://bbs.pediy.com/showthread.php?p=747497
     非常感谢坛子里还有人关注我的CM,说希望看源码和制作过程。本来不想发布源码的,因为觉得保护手段太弱了,想了想还是发布的好,以后我发布的CM会都在2个周之后发布源码并附一些简单的说明。本文没有丝毫的“高科技”,都是一些很菜很菜的手段,有自己想的也有参考别人的,高手就当看笑话了,哈哈

本CM参考了xiager的【原创】一个高难度CrackMe的制作过程,的一部分的思想。
(1)算法
有不标准的base64算法, blowfish算法,MD5算法,还有一些自己乱想的算法,那个时候还不会RSA算法,第三个CM才用到了RSA算法。
(2)动态反调试
开了2个线程来相互验证,只要发现另外一个线程出问题了,就执行自删除的代码退出。为了防止破解者直接nop启动线程的函数,我故意让一部分的解密操作在线程里执行,这样如果你让线程不执行的话就不能解密了。
(3)静态反调试
这个静态反调试主要是用Hex编辑器配合OD来操作的,非常非常低级,而且制作非常麻烦,我的这个地方做的很简单很低级,没什么参考价值了,不会的只学方法就好。因为你有静态反调试就必然要把关键机器码进行加密,而执行这个机器码之前要进行一个解密的动作,这时真正的机器码就浮出水面了。
(4)制作过程
A.调用一下用OD修改用到的加密函数和一些用到的空间的地址(本人逆向水平太菜,这样我就知道函数地址和空间的地址,方便我用OD修改,高手完全不用那么做)
B.无聊的一些循环,哄小孩玩的
C.检测线程状态,发现异常就执行自删除,退出
D.获得机器码和注册码,用SendMessage,就不用常规的GetDlgItemTextA
E.简单判断一下注册码是否合法(时间校验),加解密要 PostThreadMessage
F.简单判断一下注册码是否合法(自身MD5校验)
G.blowfish 加密
H.base64加密
I.MD5加密
J.再次检测线程状态
K.最后的判断是否成功,
L.显示成功消息,显示字符串是简单的加密处理的(eg。倒序等等,自己随便想),用OD直接查找字符串是查不到的

用OD做静态反调试的版本:
第一阶段加密
版本001                原始        (能否正常注册成功 √)
版本002                去掉按钮里面的MessageBox,和定位用的代码 (能否正常注册成功 √)
版本003                填充nop空间,修改一下jmp,(到004026DD) (能否正常注册成功 √)
版本004                修改jmp和后面的空间(00407723C)代码  (能否正常注册成功 ×)
版本005                UltraEdit修改PE文件 00407400部分 6个加密点组成的60个字节,
                然后用blowfish算法加密,生成的64位密文(能否正常注册成功 √)
版本006                修改004026dd开始的6个加密点,每个地址开始的10个字节进行随机填充
                (能否正常注册成功 √)

第二阶段加密
版本007                将我们的call修改为跳转,跳到 00407386,同时平衡好堆栈 (能否正常注册成功 ×)
版本008                修改00407386的代码,简单算法加密三个地方,
                ①blowfish密钥设置代码②第七个加密点③第一阶段的加密跳转(能否正常注册成功×)
版本009         用UltraEdit修改PE文件使其正常运行 (能否正常注册成功  √)
版本010(完成)        发现不具有动态反调试功能,修改了一下 (能否正常注册成功  √)

注册机部分就很简单了,自己看源代码就ok了,另外为了OD手动添加的代码具有可写可执行属性(有的Section段不具有可写可执行属性)我在编译器(vc6.0)里面的Link选项-》Project Optios里添加 /section:.text,rw   当然也可以在编译出可执行文件之后用LordPE等工具修改Section段的属性。

总结:其实这里面(3)静态反调试最麻烦,出一点错误都不行,要非常小心才行,我做这个部分至少做了10次才成功。
ps:有看不明白的跟帖说明,我会给出解释。


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 337
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
太强大了,学习
2010-1-18 22:40
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2010-1-18 23:11
0
雪    币: 188
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习学习,太强大了
2010-1-18 23:30
0
雪    币: 246
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
学习编写思想,好想办法ko了,嘿嘿
2010-1-19 09:33
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
真晕了,竟然骗了个精!
2010-1-19 09:38
0
雪    币: 474
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7

恭喜楼主获精华帖哦
呵呵  加密保护手段都很常规  期待更强的CM出现
2010-1-19 10:29
0
雪    币: 83
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
共享精神!值得学习
2010-1-19 10:35
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主辛苦了
2010-1-19 13:08
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
回家再下载学习
2010-1-19 13:09
0
雪    币: 517
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
谢谢,已下载
2010-1-19 14:10
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
:-),下来破解一下
2010-1-19 15:06
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
如果以后所有的CM都用上这个技术, 那不是很BT了
2010-1-19 20:58
0
游客
登录 | 注册 方可回帖
返回
//