首页
社区
课程
招聘
[原创]软件保护:让CRACKER掉入陷阱
发表于: 2008-4-4 10:16 19048

[原创]软件保护:让CRACKER掉入陷阱

2008-4-4 10:16
19048
收藏
免费 0
支持
分享
最新回复 (47)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
23楼嘴巴太不干净了。

本来就是谈论技术,提供一个软件保护的思路。当然最终软件保护需要多种方法共同使用。

论市场而言,我的软件卖了好几千份注册,两三年了到目前也没有被破解。
2008-4-6 19:54
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
CRACKME中只有一行被加密的代码。

但如果在实际软件中是好几行代码。
你就得先把整个程序读懂,然后再自己补充上代码。
2008-4-6 20:07
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
28
那是一回事,上面的那段源码,你不要说没法爆破啊
2008-4-6 20:12
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
在没有注册码的情况下无法爆破。
因为你不知道那加密的代码是什么。
2008-4-6 20:13
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
30
你。。。。。。。。。。。。。。。。。。。。。 我没法了,口才好的继续
2008-4-6 20:23
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
31
扌巴亻尔白勺车欠亻牛方攵至刂 『CrackMe◇ReverseMe』區呿言式言式
2008-4-6 20:54
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
很敬仰你的软件,能否给个下载链接?
2008-4-7 02:53
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
33
+1
(为什么不让我直接+1)
2008-4-7 03:11
0
雪    币: 1889
活跃值: (183)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
34
为了让楼主死心,我放出整个工程源码和破解后的软件
    你是不是非让我把任明汉的那个mydll.dll都逆向出来你才死心,我佩服任大哥是个汉子,所以我不会那么做。自己加密时最好自已写加密过程,多种方法,多点加密,直到把破解者累的不想再做了,而不是不能去做。这点你应该学习一下XX起名软件的作者,网上没有一款它的软件的完全成功破解(有的在部分机器上不能用,我用40台电脑试了).但我这有它的超完美破解,只用来自己用,没放出来.永远也不会放出来.

表单form1的init事件

*--
diskno = ALLTRIM(getserial(0))
thisform.text1.value = diskno
this.caption="crackme 俏狐暴力破解版"

注册按钮的click事件
*--
local skey,sn
set procedure to test6
sn = ALLTRIM(THISFORM.TEXT2.value) &&得到注册码
skey = destr(sn,diskno)
skey = md5string(skey,LEN(skey))
cstring = "2C7136347B5A73280616677076FC999CE497A0E9FA9AECE9AFE29AF2F271687A57604940190F172922232A5758"
scode = destr(cstring,skey)
*if md5string(scode,LEN(scode)) == "5D854D7F3300A3FD9E473D5639D7E33E"
if .T.
   MESSAGEBOX("暴破成功!,做人低调点好",48,"CRACKME")
   *&sCode
else
   MESSAGEBOX("注册失败!",48,"CRACKME")
endif

test2.prg

public scode &&设一个全程变量

set talk OFF &&设置几个全程开关
set century on
set hours to 24
set seconds OFF
*定义几个任明汉他们几个搞的VFP的API
declare string encstr in "MyDll.dll" string, string
declare string getserial in "MyDll.dll" integer &&取得磁盘号
declare string MD5String in "mydll.dll"  as MD5STRING string, integer &&进行MD5加密

public diskno &&定义一个用于取硬盘号的变量

do form ttttt1 &&执行tttt1表单
read events

test6.prg

定义一组自定义的API
declare string encstr in "MyDll.dll" string, string
declare string getserial in "MyDll.dll" integer
declare string MD5String in "mydll.dll"  as MD5STRING string, integer

local skey,sn
diskno = ALLTRIM(getserial(0)) &&得到硬盘号并取两边空格
? diskno
sn = "6D016C7269050D0E550C50175D0B0315"
skey = destr(sn,diskno)
skey = md5string(skey,LEN(skey)) &&进行MD5加密
cstring = "2C7136347B5A73280616677076FC999CE497A0E9FA9AECE9AFE29AF2F271687A57604940190F172922232A5758"
scode = destr(cstring,skey)
if md5string(scode,LEN(scode)) = "5D854D7F"
   &sCode
else
   MESSAGEBOX("注册失败!",48,"CRACKME")   &&弹出注册失败对话框
endif

procedure DeStr
lparameters stxt,strkey
return encstr(STRCONV(stxt,16),strkey)

procedure EnStr
lparameters stxt,strkey
return STRCONV(encstr(stxt,strkey),15)
上传的附件:
2008-4-7 07:58
0
雪    币: 1889
活跃值: (183)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
35
有些话太堵,不得不说,其实我丝毫没有攻击楼主的意思,我也挺讨厌打口水仗,我赞同楼主"只交流技术"的观点,强烈鄙视这里只说不练,游走于看雪论坛,发水贴的狂妄的年轻人。
   在这个论坛里我如楼主一样遭受过某些无聊的人的所谓攻击,我不会向他们证明,也无需证明什么,因为我有很多有意义的事儿需要去做。如果看雪论坛有加密挑战赛,设计一个crackme可以赚到1W元人民币,我可以用三个月的时间来写一个加密软件。加解密只是兴趣,而不是一种职业,这看雪兄在老早就说过了。曾经的大侠大多现在都消失了不是说他们水平不行或智商不行,而是他们要养家,破一个软件只能满足一下虚荣心,而一天成一笔生意赚几千块钱就可让自己的生活发生质的改变,所以他们选择了放弃,向这些曾经热心于看雪论坛的老兄们致敬!
    VFP是一门优秀的语言,它在单机数据库方面的查询速度和rushmore技术,至今很多数据库还在用,在解决小的自动统计问题上,它有着独到的优势,这也正是国家一直在推广这门技术的主要原因。但它之所以没有商业化的最主要原因,就是因为它的解释执行和很容易被反编,如果楼主老弟非要说反编了又怎么样,你照样破解不了,那我只能说我无语,希望楼主再多读几年书。对于精于编程的兄弟而言(当然我不是指那种破两个小共享软件就妄称老大的无聊年轻人),如果有源码了,如果他又精于这门语言,别说破解了,他都可以做出你的这个软件的升级版,就算你部分功能不全,他都可以为你完善或写个接口。当然关键是看你这个软件值不值得这么做,真正的高手是不会去破解一个功能很差的软件的,MS的操作系统就算再难破照样会很快有盗版出来。
2008-4-7 08:18
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
再次说明一下。
一、为软件作者在编程中作好软件保护,提供的一个思路。
    在编程之外,也要加壳等方式进行保护。
    因为软件保护的最终目的“破解成本”高于“破解收益”,使 CRACKER 知难而退。

二、不管用VFP还是Delphi、C、VB,这只是一个思路、方法。在什么语言中都可实现。
    而且CRACKME的这个思路也是借鉴看雪网站上http://www.pediy.com/tutorial/chap6/Chap6-1-1.htm 的内容。
    你也用不着逆mydll.dll,我无非借用了函数。这些函数算法基本是公开的。

三、再重复一下。软件保护不能只用这一种方法。
    这种方法并不是唯一。软件保护的多种方法的其一。
    如果作到即使有源代码的情况下,也无法爆破和作注册机。那加壳以及其它方法配合,那破解更是难上难。
2008-4-7 14:07
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
37
走過來時路,
終究還是回頭看,
看盡花似海,
如雪落...
2008-4-7 15:15
0
雪    币: 272
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
学习中ing,真是神啊
2008-4-8 18:30
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
再次说明一下,非常仰慕你的软件,请把下载连接贴出来.

再jjww的老子要发飙了啊,mlgb的,说的你比设计windows的微软

都牛逼一样~~你tm在那吹个jb牛啊,有种拉出来溜溜~~
上传的附件:
2008-4-8 21:39
0
雪    币: 211
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
又见用序列号加密代码的思路。
2008-4-8 23:31
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
我很赞成你的话.
2008-4-9 00:21
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
这样的软件不会有几个人用的,因为就是有正确的注册码,有时还会输错个别字符的情况,一旦发生这种情况,电脑系统被破坏,谁还敢用你的软件?自然是没几个人用了,而且还会认为是作者故意破坏电脑的。
2008-4-12 15:07
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
一般用户胡乱输入几乎不可能碰对“假码”,
因为随机乱输碰对“假码”的概率 与  随机乱输碰对正确注册码的概率是一样的。
因此 输入值=假码 的一定是CRACKER。而胡乱输入的未必是CRACKER

捉住了CRCKER,软件作者可在软件中设定对付CRACKER的功能,有三种方案可选择:
A)软件退出,什么都不作。   
B)破坏CRACKER电脑系统。 (不提倡使用)
C)将假码保存在硬盘后退出,软件重起作假验证。 (见一楼详述)
2008-4-13 09:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
killllll比较中肯
caocunt有点激动了,这个话题是软件保护,希望你能根据实际经验提供更好的保护措施,而不是表现你的破解技术,写注册机难,爆破这年头谁不会啊
2008-4-15 09:31
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
45
海风你火星文病发了
2008-4-16 01:31
0
雪    币: 293
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
46
希望看雪多发一些怎么防的帖子,这才是促进国家软件的发展。
2008-5-28 12:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
是啊,多重防护的越来越多了。
2008-7-18 19:56
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
加些花指令
2008-7-18 20:34
0
游客
登录 | 注册 方可回帖
返回
//