先别说谢,我后来想了想,还是资源共享的好,就把这个帖子公布出来好了。<br>首先,任何人都不能防止破解,而且你所能操作的内容在内存中都能看得到(filemon不行,最起码也要用winhex),你唯一能做的就是增加破解难度使得cracker觉得他所做的破解工作不值得这个软件本身的价值,他也就不会破解了。<br>如果想增加破解难度,你要遵循以下几条:<br>1:不要给出明确的密码错误的提示,这只会给破解者提供线索告诉他你的软件是在哪判断注册码的。如果你能在软件启动的时候判断的话就即可以更高一步加大破解难度,当然是别人输入的时候先存在一个位置了,比如注册表<br>2:在判断注册码时,最好先检查一次进程,如果找到“filemon”“regmon”“winhex”“ollydbg”什么的就可以不要判断注册码,直接退出就可以了,当然也不要任何提示<br>3:上次说的,把判断过程放在一个单独的dll里。<br>4:尽量使用密码学的算法,网上的免费代码很多,md5的就不错。<br>5:不要做成类似"if decrypt(abc)=yui then ..."的形式,就是一个新手也能轻松破解这种形式的判断。如果你的软件涉及输出文件什么的最好就不要判断了,直接用一个算法,和他输入的注册码作一下运算,把结果再和你输出的内容作个xor什么的就最好了<br>建议你参考winrar,它的文件加密算法就是一个很典型的例子,从来没有人能破解它加密的文件<br>6:最好在不同的地方做不同方式上的判断,这样cracker如果不对你的软件作深入研究的话就不能完全破解。但要注意的是就算用的算法可以养也不要用一个过程来回的call,最好把那个过程复制几分,每份又在作些稍微的更改,就是交换一下代码的顺序也行,也能加大破解难度了<br>暂时就写这么多了,希望对你有帮助