作者datoguo (秋)
看板CodeJob
标题Re: [讨论] 序号保护机制
时间Sun Feb 22 23:03:58 2009
你有没有考虑用公钥密码系统,如RSA,
把序号被破解的困难度建立在密码学已知且公认安全的公钥密码系统上,
发序号时,以私钥将明文加密後的密文为序号,
再於软体中使用公钥检验,如此,破解者逆向追踪程式码,纵然知道原始码,
不知道私钥,也无法设计出序号产生器。
不过,缺点是:如果你要用RSA,必须选大质数才够安全(破解者难以大数分解),
但是一旦如此,你的序号也会非常长。
可是如果选用不够大的质数,序号可以比较短,但是也相对比较容易被大数分解破解。
除此之外,你可以针对序号检验的部份的code加Anti-Debug,及加壳,
增加破解及逆向追踪的困难度。
以上小小建议。
※ 引述《jlovet (Want 2 see u no more)》之铭言:
: http://ksc91u.googlepages.com/KeyVal.7z
: http://ksc91u.googlepages.com/keyval.zip zip档案比较大
: http://ksc91u.googlepages.com/KeyVal2_Release.zip Without debug information
: 我自己写了一个保护软体dll的方法
: 就在上面这个连结
: keygen2 会生出可以用的序号,二十个吧,每次都不一样
: keyval2 会要你输入序号,对的话,就会执行SampleDll.dll.enc
: 里面的一小段程式,印出来一句话
: 有人可以
: 1. 解开那个dll.enc,然後另外写一只程式去呼叫,或是修改keyval2直接去呼叫他
: 或
: 2. 写一个序号产生器出来吗
: keygen2 会讲出 sym是多少
: 25874866672756481225899 应该是这个...
: 中间还有用到..Whirlpool hash
: dll.enc是aes加密过的
: 知道这些要解开 dll.enc应该不难,不过不知道有没有可以直接从keyval2去破解的
: 想知道各位觉得这个方法如何,另外也徵求分享较新软体的序号机制
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.104.22
※ 编辑: datoguo 来自: 118.169.104.22 (02/22 23:04)
1F:推 haryewkun:居然会在这里遇到熟人……XD 02/23 03:29