大家一起来讨论共享软件防爆力破解及软件注册验证过程的安全性。(200分)

L

loulan

Unregistered / Unconfirmed
GUEST, unregistred user!
网上介绍的很多了,我的思路是这样的。
1.主程序自己用MD5较验关键处的代码(注册时的跳转语句及功能限制语句)相当于自己较验自己.
2.给程序加上猛壳,用dll给加过壳的程序进行较验(当然也可写若干个dll,逐个较验,最后一个dll较给update.exe较验,update一般不会引起注意).
3.一但较验发现文件被修改,就在注册文件中加上时间戳和特殊标记(最好多放几个地方,加密形式最好也不一样)。
接下来你想怎样,自己说了算(也可以先让他高兴几天,突然某一天...^_^,万一他拿去换money,我想你可以给用户提示点什么或吓一下说不定这个盗版用户就变成正版用户了...^__^也可拿它作为一种销售手段...呵呵,扯远了!).
4.机器码生成最好是两个,用户机上只显示一个m1,通过这m1在注册机中算出另外一个m2,程序在生成m2时不要变成完整码(特别是明码)存放在一起,能做到按位生成最好。
5.注册码及较验码的较验过程,不能在内存中出现明码比较(特别是完整的明码不然内存注册机可毫不留情),我是这样想的.注册时将注册码明码直接分解加密存入注册文件中不进行较验(或直接给用户发注册文件不提供明码输入).软件运行后的较验,最好进行不定时较验和随机分批较验(不要一次全部较验完毕),较验时动态生成一个大点的非字符型数组最好是多维的,并随机分配一些初值,随机抽取m2的某一位随机存放在数组中某一维或两维中(多存几个地方,并记录这些下标).注册码按m2的位数抽取相应的注册码,存入随机存入剩下的维中(记录下这些下标,注册码可能不只一位连续存入相邻位即可).接下来将数组从m2占用的维数开始逐个解码与注册码所占维数进行比对(我们只关心m2的下标与注册码所在位置的下标)。其时只要m2直接解码与注册码比较就可以了,这里只不过起迷惑作用。

我最想了解的是1。(并且加了壳以后在释放到内存中还可较验)。
 

白河愁

Unregistered / Unconfirmed
GUEST, unregistred user!
多余,VM才是王道。
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
最好同时用上VB VM、Java VM、.Net VM、P-Code VM、JS VM、Python VM、Ruby VM——
相互穿插调用——战斗力相当于武当七侠合体:)
 

地质灾害

Unregistered / Unconfirmed
GUEST, unregistred user!
发现异样立马往硬盘写入垃圾数据。
 
D

delhpi

Unregistered / Unconfirmed
GUEST, unregistred user!
现在 搞软件挣钱的人,估计不再考虑反破解的问题了。
 
L

loulan

Unregistered / Unconfirmed
GUEST, unregistred user!
本人对vm一点都不懂。请提供一些相关资料。欢迎大家断续发言。
loulanw@126.com
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
924
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部