破解和反破解是技术对抗,核心问题是成本和收益。
在PC架构上,由于所有的代码都要送到CPU去执行,所以除了在线防破解之外,离线程序从“理论”上来说都是可以破解的,但实际操作中有难易之分,也有值不值得的区别。
先说破解者,破解软件无非是为了名或者利,如果一个软件难度太大,而且破解后带来的名利收入不足,破解带来的法律风险太高,那自然没有人有动力去做破解。某些专业软件就是如此,因为用户使用量太少,而最终用户是用来生产的,往往出于软件稳定性、法律等原因不会考虑购买盗版,所以没有破解者。
再说软件开发者,高级防破解技术是需要付出代价的:性能、稳定性、可扩充性、易用性、易读性都会受到影响,如果采用高级技术带来的好处没有远大于采用法律手段,那么这些技术就不会被采用。欧美版权保护比较充分,因此很多软件都是采用Paper license,也就是纯用法律来控制。
此外,在互联网免费思维的今天,个人软件易破解本来也是一种潜在的营销手段,某软中国最喜欢跟是用盗版的用户谈正版化,每次10%,小刀子割肉。
再多说句,在线防破解也不是坚不可摧的,服务器被入侵(索尼罪大恶极,民不聊生:),或者密码算法被破解,或者大客户Key泄露,都可以导致防破解手段无效。
@潘安仁所提到的安全软件不容易破解,那是因为,这是人家的脸面,当然要护好不被你打了,而且万一被病毒破解,那就不是盗版影响收入的问题了。但是代价也是很大的,杀病毒软件越来越消耗资源。
说个笑话,有一次某个客户自己开发了一套软件,还买了一个防破解插件,请我们测试破解难度,某K姓大牛用了三天,然后很郁闷的说:“还挺难搞的,花了三天”。我一看,破错了,把人家防破解插件给破了......