好友
阅读权限10
听众
最后登录1970-1-1
|
Kris
发表于 2011-8-9 22:46
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。
本帖最后由 Kris 于 2011-8-9 22:46 编辑
[ 破文标题 ] 追码+爆破+制作内存注册机 之 004无难度CM
[ 破文作者 ] Kris
[ 作者邮箱 ] ZzhEMail@Foxmail.Com
[ 破解工具 ] OD
[ 破解平台 ] Windows Xp
[ 软件名称 ] 无难度CM
[ 原版下载 ] http://www.52pojie.cn/thread-101461-1-1.html
[ 破解声明 ] 仅供交流学习技术,若教程中有不对之处,希望各位大大即使指正!
破解过程:
1.确定它是用E语言编写的东西
2.使用E-Debug打开它,点击登录按钮后,找到按钮事件为00401DC6
3.OD载入并运行,在00401DC6下断后,随便输入账号和密码,点击登录按钮
4.中断在00401DC6后开始分析代码
00401DC6 /. 55 push ebp
00401DC7 |. 8BEC mov ebp,esp
00401DC9 |. 81EC 08000000 sub esp,0x8
00401DCF |. 6A FF push -0x1
00401DD1 |. 6A 08 push 0x8
00401DD3 |. 68 40010116 push 0x16010140
00401DD8 |. 68 01000152 push 0x52010001
00401DDD |. E8 A6010000 call CM.00401F88 ; 获取输入密码保存到EAX中
00401DE2 |. 83C4 10 add esp,0x10
00401DE5 |. 8945 FC mov [local.1],eax
00401DE8 |. A1 A8FE4900 mov eax,dword ptr ds:[0x49FEA8] ; eax=[49FEA8]=正确的密码
00401DED |. 50 push eax ; 正确的密码(追码点)
我的密码为:
189?254?7?121?244?73?144?167?23?19?149?136?234?56?211?73?5?140?112?1?121?109?244?121?208?90?15?241?38?209?113?229?207?77?24?46?72?91?116?241?20?202?73?223?86?79?24?11?221?89?108?149?96?113?31?8?~46?20?19?217?204?194?81?4?
00401DEE |. FF75 FC push [local.1] ; 输入的密码
00401DF1 |. E8 E8F3FFFF call CM.004011DE ; 比较函数
00401DF6 |. 83C4 08 add esp,0x8 ; 输入的密码和正确密码相同则返回0,否则返回-1
00401DF9 |. 83F8 00 cmp eax,0x0
00401DFC |. B8 00000000 mov eax,0x0
00401E01 |. 0F95C0 setne al
00401E04 |. 8945 F8 mov [local.2],eax
00401E07 |. 8B5D FC mov ebx,[local.1]
00401E0A |. 85DB test ebx,ebx
00401E0C |. 74 09 je XCM.00401E17
00401E0E |. 53 push ebx
00401E0F |. E8 62010000 call CM.00401F76
00401E14 |. 83C4 04 add esp,0x4
00401E17 |> 837D F8 00 cmp [local.2],0x0
00401E1B 0F84 35000000 je CM.00401E56 ; 爆破点1,如果不跳,继续执行,可以看到下面密码错误的字符串,所以这里必须跳,改JMP
00401E21 |. 6A 00 push 0x0
00401E23 |. 6A 00 push 0x0
00401E25 |. 6A 00 push 0x0
00401E27 |. 68 01030080 push 0x80000301
00401E2C |. 6A 00 push 0x0
00401E2E |. 68 00000000 push 0x0
00401E33 |. 68 04000080 push 0x80000004
00401E38 |. 6A 00 push 0x0
00401E3A |. 68 D4354700 push CM.004735D4
00401E3F |. 68 03000000 push 0x3
00401E44 |. BB F0294000 mov ebx,CM.004029F0
00401E49 |. E8 34010000 call CM.00401F82
00401E4E |. 83C4 28 add esp,0x28
00401E51 |. E9 87000000 jmp CM.00401EDD
00401E56 |> 6A FF push -0x1
00401E58 |. 6A 08 push 0x8
00401E5A |. 68 40010116 push 0x16010140
00401E5F |. 68 01000152 push 0x52010001
00401E64 |. E8 1F010000 call CM.00401F88 ; 再次获取密码
00401E69 |. 83C4 10 add esp,0x10
00401E6C |. 8945 FC mov [local.1],eax
00401E6F |. A1 A8FE4900 mov eax,dword ptr ds:[0x49FEA8]
00401E74 |. 50 push eax
00401E75 |. FF75 FC push [local.1]
00401E78 |. E8 61F3FFFF call CM.004011DE ; 再次用输入的密码和真正的密码做比较
00401E7D |. 83C4 08 add esp,0x8
00401E80 |. 83F8 00 cmp eax,0x0
00401E83 |. B8 00000000 mov eax,0x0
00401E88 |. 0F94C0 sete al
00401E8B |. 8945 F8 mov [local.2],eax
00401E8E |. 8B5D FC mov ebx,[local.1]
00401E91 |. 85DB test ebx,ebx
00401E93 |. 74 09 je XCM.00401E9E
00401E95 |. 53 push ebx
00401E96 |. E8 DB000000 call CM.00401F76
00401E9B |. 83C4 04 add esp,0x4
00401E9E |> 837D F8 00 cmp [local.2],0x0
00401EA2 0F84 35000000 je CM.00401EDD ; 爆破点2,可以下面的代码有PUSH关键字符串登录成功,如果跳走就不会弹出正确对话框了,故NOP之
00401EA8 |. 6A 00 push 0x0
00401EAA |. 6A 00 push 0x0
00401EAC |. 6A 00 push 0x0
00401EAE |. 68 01030080 push 0x80000301
00401EB3 |. 6A 00 push 0x0
00401EB5 |. 68 00000000 push 0x0
00401EBA |. 68 04000080 push 0x80000004
00401EBF |. 6A 00 push 0x0
00401EC1 |. 68 F0354700 push CM.004735F0
00401EC6 |. 68 03000000 push 0x3
00401ECB |. BB F0294000 mov ebx,CM.004029F0
00401ED0 |. E8 AD000000 call CM.00401F82
00401ED5 |. 83C4 28 add esp,0x28
00401ED8 |. E9 00000000 jmp CM.00401EDD
00401EDD |> 8BE5 mov esp,ebp
00401EDF |. 5D pop ebp
00401EE0 \. C3 retn
00401EE1 /. 55 push ebp
00401EE2 |. 8BEC mov ebp,esp
00401EE4 |. 8BE5 mov esp,ebp
00401EE6 |. 5D pop ebp
00401EE7 \. C3 retn
5.破解
(1)爆破
00401EA2 NOP掉
00401E1B 改成JMP
(2)制作内存注册机
打开KeyMake-其它-内存注册机
在弹出窗口中,点浏览,选择这个CM
然后点添加,
刚才的分析已经说到
00401DED |. 50 push eax ; 正确的密码(追码点) 为追码点
所以添加窗口中应该这样填写
然后点击生成,用生成的内存补丁打开文件,点登录按钮,将得到如下效果
和刚才追出的密码一样,复制后放上去看看
破解总结:
1.找到按钮事件
2.分析事件代码
3.找出爆破点和追码点即可
直接下载文件吧,文档中附带很多图片,下载附件才好看!~~
|
免费评分
-
查看全部评分
|