首页
社区
课程
招聘
[挑战论坛]谁能破解(或作注册机)我的CrackMe
发表于: 2005-12-11 10:19 11192

[挑战论坛]谁能破解(或作注册机)我的CrackMe

2005-12-11 10:19
11192
各位不是在研究加密、解密吗??
我用三个已知函数作了一个注册码校验的CrackMe程序。
可以确保在没有正确注册码的情况下,很难暴力破解,写注册机更是不可能。
特此向各位Cracker挑战:
在未知注册码的情况下,谁能破解我的CrackMe?谁能写注册机?

CRACKME文件
http://www.meizibbs.3322.org/bbs/UploadFile/2005-12/2005121023445758346.zip

VFP运行库
http://www.meizibbs.3322.org/bbs/UploadFile/2004-6/2004626675877448.rar
(两个解压在一个目录下运行即可)

用了RMH的Mydll.dll,其中用三个函数encstr  getserial    MD5String  
分别是字符串加解密、获取硬盘序列号、MD5运算
无壳,可反编译。
有兴趣的朋友,先试着破解一下,再将机器码贴上来。一周之后回复正确注册码。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (23)
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
2
你不怕触犯法律了嘛
2005-12-11 13:31
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 ForEver 发布
你不怕触犯法律了嘛

破解未经作者同意的软件是违法行为。
CRACKME是“你来破解我啊”
2005-12-11 13:41
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
&&以下代码在VFP9.0运行,其实很容易移植到VB等其它语言

Declare String encstr           IN "MyDll.dll" String origStr,String cKey
Declare String  getserial     IN "MyDll.dll" Integer DiskNo
Declare STRING MD5String        IN "mydll.dll" AS MD5STRING STRING inputstr, INTEGER strlen

LOCAL sKey, sn
Diskno=ALLTRIM(getserial(0))  &&获取硬盘序列号
?Diskno  
sn='????' &&请输入正确注册码
sKey=DeStr(Sn,Diskno)
sKey=MD5String(sKey,LEN(sKey))
cString='2C7136347B5A73280616677076FC999CE497A0E9FA9AECE9AFE29AF2F271687A57604940190F172922232A5758'
sCode=DeStr(cString,sKey)
IF MD5String(sCode,LEN(sCode))='5D854D7F'
&sCode  &&运行还原的代码
ELSE
MESSAGEBOX('注册失败!',48,'CRACKME')
ENDIF

&&以下构造了一个对称加解密函数,实际应用中用DES等算法更好
      
FUNCTION DeStr  &&解密
LPARAMETERS sTxt , sTrKey
RETURN encstr(STRCONV(sTxt,16),sTrKey)
ENDFUNC

FUNCTION EnStr &&加密
LPARAMETERS sTxt , sTrKey
RETURN STRCONV(encstr(sTxt,sTrKey), 15)
ENDFUNC
2005-12-13 21:37
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
最初由 killllll 发布

破解未经作者同意的软件是违法行为。
CRACKME是“你来破解我啊”

2005-12-13 21:47
0
雪    币: 233
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
有奖励没?
2005-12-14 16:35
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 okdodo 发布
有奖励没?


在未知注册的情况下,谁能第一个写出注册机,奖励50元
2005-12-15 21:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
哈哈没人理吧
2005-12-16 14:15
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不知者无畏,出5千,我给你一个满意的答复。
2005-12-16 14:52
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 鸡蛋壳 发布
不知者无畏,出5千,我给你一个满意的答复。

你们不是以技术研究为目的吗?
不以赢利为目的。

看来是破不出来。源代码都写出来
2005-12-16 17:51
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
11
最初由 killllll 发布

你们不是以技术研究为目的吗?
不以赢利为目的。

看来是破不出来。源代码都写出来


鸡蛋壳不代表大家。上面这句话应改成:

鸡蛋壳你不是以技术研究为目的吗?
2005-12-16 17:53
0
雪    币: 212
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
期待高手出招啊
俺是没时间也没精力搞了
心累了!

   顺便说一句你的第一个CracK ME估计很难搞,因为运行起来都很困难!
你自己想一下是为什么
2005-12-16 18:30
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最初由 starluck 发布


顺便说一句你的第一个CracK ME估计很难搞,因为运行起来都很困难!
........


(两个解压在一个目录下运行即可)
也就是说所有CRACKME 与MYDLL.dll 与VFP运行库在同一目录下,即可运行。
没有足够上传空间,否则我打包在一起。
2005-12-16 18:41
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
14
穷举的算不算?只是需要穷举一段时间,^_^
2005-12-16 20:09
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
最初由 wangshq397 发布
穷举的算不算?只是需要穷举一段时间,^_^

穷举当然算,任何方法都可以。
2005-12-16 21:06
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
两周多,无人破解与写注册机。

现公布注册机与注册码生成算法。

注册机
http://www.meizibbs.3322.org/bbs/viewFile.asp?BoardID=2&ID=22843

******** 注册码生成算法
Declare String  getserial     IN "MyDll.dll" Integer DiskNo
Declare String encstr           IN "MyDll.dll" String origStr,String cKey

Id=getserial(0) &&或输入机器码

SN=EnStr('4249405B470D86CA',Id)  &&注册码生成算法

FUNCTION DeStr  
LPARAMETERS sTxt , sTrKey
RETURN encstr(STRCONV(sTxt,16),sTrKey)
ENDFUNC
2005-12-26 21:52
0
雪    币: 243
活跃值: (190)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
17
一个字,牛!
2005-12-27 00:20
0
雪    币: 246
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
为什么要公布,让我学会破解了再试试
2005-12-27 15:11
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
19
构造一个理论上只能穷举的算法其实用不着这么麻烦的,下面这样足够了

S = F(用户名,注册码)
if (MD5(S) == 某个常数值) then 注册成功

F是可逆的,某个常数值可以是作者任意给定的字符串经MD5运算后的结果,注册机里可以写

注册码 = F'(用户名,给定字符串)

如果不知道这个给定字符串是无论如何也解不出来的。
2005-12-28 10:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
最初由 RoBa 发布
构造一个理论上只能穷举的算法其实用不着这么麻烦的,下面这样足够了

S = F(用户名,注册码)
if (MD5(S) == 某个常数值) then 注册成功

........


最近国际密码学家Lenstra利用王小云提供的MD5碰撞,伪造了符合X.509标准的数字证书,这就说明了MD5的破译已经不仅仅是理论破译结果,而是可以导致实际的攻击,MD5的撤出迫在眉睫。王小云说,目前SHA-1在理论上已经被破译,离实际应用也为期不远
2005-12-28 16:29
0
雪    币: 513
活跃值: (2258)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
21
感觉像是在做广告,起的名字比较起眼,我对这类东西不感兴趣
2005-12-28 17:22
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
最初由 RoBa 发布
构造一个理论上只能穷举的算法其实用不着这么麻烦的,下面这样足够了
S = F(用户名,注册码)
if (MD5(S) == 某个常数值) then 注册成功
........


这种方法上会我也贴了:
http://bbs.pediy.com/showthread.php?s=&threadid=11589&pagenumber=3

不过你这种方法对付不了暴破。
大家都地知道暴破是修改程序直接跳转到then后面语句运行。

在示例中是将显示注册成功的语句加密成密文,在实际程序中当然是将限制功能的核心语句加密成密文。这样即使通过修改也无法暴破。

当然我这种方法也不是什么新鲜东西,有关加密解密的书中都有提到,不过书中都说的不清不楚,我只是作出一个示例。
2005-12-28 20:47
0
雪    币: 50
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
怎么会有这样的ID,谁邀请的?
2005-12-29 13:08
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24
用非对称算法即可,如RSA-1024或2048,
好像WinRAR就是用非对称算法,因此WinRAR没有注册机.
目前还没有发现比穷举更好的逆向算法.
2005-12-29 18:13
0
游客
登录 | 注册 方可回帖
返回
//