关于软件的加密和破解,该如何解决

关于软件的加密和破解
关于软件的加密和破解,有几个疑问,如下:
1、是不是所有软件,不论其怎么加密,都有其破解办法?
2、是不是通过反编译,可以破解任何软件?
3、使用加密狗等硬件认证的实体,就可以防止破解,或者说通过对程序反编译之后照样可以破解?
4、有没有什么相对安全的加密技术?

------解决方案--------------------
基本上,加密都是防君子不防小人,加密狗也一样,相对安全可以用VM
------解决方案--------------------
探讨
基本上,加密都是防君子不防小人,加密狗也一样,相对安全可以用VM

------解决方案--------------------
什么都是相对的 没有绝对的
------解决方案--------------------
应该说都是出于一种安全性考虑吧!或者不想给源代码让人可读,就把上面的IP地址加密等等。安全考虑!
------解决方案--------------------
个人不要花大精力去做加密,这些事情应该交给特定的厂商去做,他们做的专业多了,好多个人做的“加密”,在网上都是被秒杀的。

------解决方案--------------------
PilotEdit是这样保护软件的,仅供参考:
1。获取用户的硬盘或CPU的序列号作为机器码。
2。用RSA算法的私钥对机器码加密作为用户的注册码。在程序中用公钥进行解密来验证注册码是否正确。
实现了以上两步后,Cracker不可能生成序列号生成器之类的软件。而一个注册码只能用在一台机器上。

Cracker要破解这样的软件,唯一的方法是改变程序的可执行文件。我们可以再采取措施对程序的可执行文件进行校验。
一个比较笨的方法是把程序的可执行文件读入内存,然后进行CRC校验。
程序中做几次CRC校验,再验证几次注册码,代码再写得乱一点,基本上可以让这个程序很难破解。
而即使破解后,Cracker必须提供一个exe文件,而很多用户都不愿使用来路不明的被crack过的exe文件。
所以这些措施仍然可以保护软件的。
------解决方案--------------------
5楼正解!