吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6119|回复: 10
收起左侧

有个CrackMe,高手来帮忙

[复制链接]
ximo 发表于 2008-5-24 11:00
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

这是06年PYG的CrackMe,虽然是06年的,昨天拿出来练,发现搞不定啊.
郁闷死了,只会爆破.
准备放弃了.高手指点一下啊
小弟菜菜,大牛帮我
[s:17][s:17][s:17]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lunglungyu 发表于 2008-5-24 11:21
link??? [s:44]
不是还要自己找吧 [s:44]
Tale 发表于 2008-5-24 11:23
小糊涂虫 发表于 2008-5-24 11:33
 楼主| ximo 发表于 2008-5-24 11:44
不好意思,刚才忘把附件传上来了
小生我怕怕 发表于 2008-5-24 13:55
很有难度哦!!!!!!!望高手来做个教程指教一二
头像被屏蔽
wd52pjzhnbzd 发表于 2009-1-29 19:23
提示: 作者被禁止或删除 内容自动屏蔽
tes 发表于 2009-8-25 22:38
菜鸟飘过 在学入门的crackme
如烟似梦 发表于 2009-8-26 13:57
本帖最后由 如烟似梦 于 2009-8-26 22:12 编辑

在xp上面终于没有问题。一组的注册码
机器码:104667244
用户名:如烟似梦   (名称是不参入注册码计算,随意)
E-mail:123
注册码:1+-0(#,-%"930GF34+*9A34A7A6

在win2000运行这个程序报错:运行报错"13" 类型不匹配。郁闷.......

把前面的流程简单的说一下:
第一:脱壳
第二:脱壳文件比原始文件大,修改比较文件长度的地方
0040D837   . /EB 45         JMP SHORT 0040D87E                       ;  0040D87E
第三:比较文件名的地方,不改文件名就不用修改程序
返回地址: 0040D8FA  函数名称: __vbaStrCmp(MSVBVM60.DLL)
__vbaStrCmp: 比较字符串
          String1="[PYG]CrackMe"
          String2="[PYG]CrackMe"
__vbaStrCmp返回值: 0x00000000(比较字符串)

第四:比较key文件的地方,key文件名称:PYG2006.Key ,内容是下面的两步结果为20041201 (我的这里是内容为360959750  即 20041201*18 + 218132)
返回地址: 0040E54D  函数名称: __vbaVarSub(MSVBVM60.DLL)
__vbaVarSub: 减法运算
          RetBuffer=0x0012F9F4
          Var1=0x0012FAD8  (vb字符串:"218132")
          Var2=0x00149EB4  (vb字符串:"360959750")
__vbaVarSub返回值: 0x0012F9F4 (vb双精度:360741618.000000)
     
返回地址: 0040E562  函数名称: __vbaVarDiv(MSVBVM60.DLL)
__vbaVarDiv: 除法运算
          RetBuffer=0x0012F9E4
          Var1=0x0012F9A0  (vb整型:18)
          Var2=0x0012F9F4  (vb双精度:360741618.000000)
__vbaVarDiv返回值: 0x0012F9E4 (vb双精度:20041201.000000)
     
返回地址: 0040E570  函数名称: __vbaStrVarVal(MSVBVM60.DLL)
__vbaStrVarVal: 把字符转ascii码
          Arg1=0x0012FA1C
          Char=0x0012F9E4  (vb双精度:20041201.000000)
__vbaStrVarVal返回值: 0x00150B54 (unicode字符串"20041201")

第五:取信息
返回地址: 0040FCFB  函数名称: __vbaLenVar(MSVBVM60.DLL)
__vbaLenVar: 计算变量长度
          RetBuffer=0x0012F8A0
          Var=0x0012FA78  (vb字符串:"ccbszhxd")
__vbaLenVar返回值: 0x0012F8A0 (vb长整型:8)

返回地址: 0040FD25  函数名称: __vbaLenVar(MSVBVM60.DLL)
__vbaLenVar: 计算变量长度
          RetBuffer=0x0012F880
          Var=0x0012F988  (vb字符串:"123@139.com")
__vbaLenVar返回值: 0x0012F880 (vb长整型:11)

返回地址: 0040FD5D  函数名称: __vbaLenVar(MSVBVM60.DLL)
__vbaLenVar: 计算变量长度
          RetBuffer=0x0012F850
          Var=0x0012F9A8  (vb字符串:"79797979")
__vbaLenVar返回值: 0x0012F850 (vb长整型:8)

第六:机器码计算
每一位加1 然后在字符串"52013148967888888888"对应位置取数,我的机器码为814697779,计算结果923468886

第七:邮箱计算,
刚开始也是从一个字符中"chinapygabcdefghijkl"取数,然后与机器码计算。程序在我的2000系统上运行这步就报错
返回地址: 0040FF3A  函数名称: __vbaLenVar(MSVBVM60.DLL)
__vbaLenVar: 计算变量长度
          RetBuffer=0x0012F8A0
          Var=0x0012F988  (vb字符串:"123@139.com")
__vbaLenVar返回值: 0x0012F8A0 (vb长整型:11)
     
返回地址: 0040FF5D  函数名称: __vbaVarForInit(MSVBVM60.DLL)
__vbaVarForInit: 初始化For循环
          Counter=0x0012F968
          TempStep=0x0012F5A8
          TempEnd=0x0012F598
          Start=0x0012F7EC  (vb整型:1)
          End=0x0012F8A0  (vb长整型:11)
          Step=0x0012F7FC  (vb整型:1)
__vbaVarForInit返回值: 0x00000001(初始化for循环)

在xp上面终于没有问题。接上面步骤:

第八:机器码与E-mail 生成一个中间值,注册码的前19位经计算 (code[n]的ASCII+ 4 +n )结果要与这个中间值相同

第1位注册码为: 1的ASCII码为 0x31 + 4 + 1 = 0x36
第2位注册码为: +的ASCII码为 0x2B + 4 + 2 = 0x31

返回地址: 004106D3  函数名称: __vbaVarAdd(MSVBVM60.DLL)
__vbaVarAdd: 加法运算
          RetBuffer=0x0012F804
          Var1=0x0012F814  (vb字符串:"7920HCAYYGIAA")
          Var2=0x0012F834  (vb字符串:"61481-")
__vbaVarAdd返回值: 0x0012F804 (vb字符串:"61481-7920HCAYYGIAA")

第九:比较注册码的前19位与后8位,没有问题就ok
返回地址: 004109D6  函数名称: __vbaVarTstEq(MSVBVM60.DLL)
__vbaVarTstEq: 变量是否相等
          Var1=0x0012F8DC  (vb字符串:"61481-7920HCAYYGIAA")
          Var2=0x0012F4CC  (vb字符串:"61481-7920HCAYYGIAA")
__vbaVarTstEq返回值: 0xFFFFFFFF(NULL表示不相等)

返回地址: 00410A89  函数名称: __vbaVarTstEq(MSVBVM60.DLL)
__vbaVarTstEq: 变量是否相等
          Var1=0x0012F804  (vb字符串:"9A34A7A6")
          Var2=0x0012F824  (vb字符串:"9A34A7A6")
__vbaVarTstEq返回值: 0xFFFFFFFF(NULL表示不相等)

返回地址: 00410B63  函数名称: __vbaStrCat(MSVBVM60.DLL)
__vbaStrCat: 连接字符串
          String1="欢迎您加入PYG!"
          String2="如烟似梦:"
__vbaStrCat返回值: 0x0015593C (unicode字符串"如烟似梦:欢迎您加入PYG!")

晕,写完才发现这竟然是一个很老的贴子。
小黑冰 发表于 2009-9-5 14:13
在xp上面终于没有问题。一组的注册码
机器码:104667244
用户名:如烟似梦   (名称是不参入注册码计算,随意)
E-mail:123
注册码:1+-0(#,-%"930GF34+*9A34A7A6

在win2000运行这个程序报错:运行报错"13" 类 ...
如烟似梦 发表于 2009-8-26 13:57



高手啊````````
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表