dll加密处理 你DLL要加密,不能让人家可以用Reflector反编译出来,不然什么算法都没有用

现在是这样的,A拥有私钥,B拥有公钥,A通过私钥加密,发给B,B用公钥解密得到内容,现在C出现了,C自己搞了密钥对,把C的公钥替换掉B的公钥,这样C同样可以用私钥加密发给B,而B同样可以通过公钥来解密,结果是B不再需要A了
这怎么解决?
答:

我的方法(同时使用DES和RSA加密算法,用DES加密算法验证假注册码,目的是为了欺骗Cracker,用RSA验证真正的注册码):
1.取用户硬盘Serail   Code.(建议取CPU   ID,但我不知如何取),取用户名无法防止一码通用。
2.自己做一注册机,用私钥进行硬盘Serail   Code   RSA加密,生成注册码。如:
    C8J35noAXNOhBoOueXlXqweKo6Y7EbEE3UUHOJIdSYclc5zDdEU1Uq
3.用户得到注册码后,将注册码输入软件注册码输入框,用户点确定后执行一段垃圾代码(多多使用goto语句让Cracker晕头转向,此举可以拦住一般 水平的Cracker),垃圾代码之后调用DES加密算法计算假注册码(假注册码是指用Des加密算法的注册机生成的注册码)的正确性(水平高一点的 Cracker会跟踪到这里),若注册码正确则显示注册成功,Cracker跟踪到此处就会认为破解成功,随及制造注册机发布,其它真正的注册码验证还在 后头呢。
4。把用户名和注册码存入注册表。
5。软件下次启动时,读入注册表中的用户名和注册码到变量。
6。启动DES代码验证注册的正确性
7。无用的goto代码
8。验证DES注册码。
9。软件继续启动。
10。启动完毕

用RSA加密算法作为合法注册码的验证算法,采用单独的线程,每十分种验证一次,如果RSA注册码不正确但DES正确,则sleep一天或两天(千万不要死机或破坏用户数据,这样用户会认为你的软件质量有问题,Cracker最怕的是等待)。

用这种方法,从理论上讲,Cracker不可能做出真正的注册机,因为他无法知道私钥,只可能使用暴力破解之法(也就是改exe),但是找断点很困难,所以很难破解。

你可能感兴趣的:(dll加密处理 你DLL要加密,不能让人家可以用Reflector反编译出来,不然什么算法都没有用)