电脑软件(例如 Adobe、Autodesk)为什么那么容易被破解?

入眼就看到一群没玩过破解的玩命YY……

软件破解比开发容易一万倍

软件最终是要丢给CPU执行的;不管你用了多骚的手法、多牛逼的加密,到了CPU执行这一步,它就是一堆明文指令的组合。

既然是明文指令,那就可以拿来分析——这个事实决定了开放平台上靠计算机指令防盗版完全是痴人说梦。

最简单的,你的程序每次执行前检查是否正版、不是正版弹出个对话框或者直接退出,以为这样就能阻止盗版用户?

太遗憾了。破解者只需搜索对话框文本所在、再找到相关的msgbox调用或者_exit调用或其他相关调用——有无数种办法可以帮助破解者做到这一点,比如全文搜索msgbox相关调用、比如用调试器watch对话框文本相关的访问——你的盗版验证代码就被顺藤摸瓜了。

然后,最简单的,直接把if(正版验证通过)改成if(true)(汇编指令的JNZ改正JZ或JMP),跳过你的拒绝执行逻辑,你的保护就被废了,破解版就搞出来了。

当年起码80%甚至90%以上的盗版软件就是这么搞出来的。

所以你不敢那么憨了,你发现软件不是正版时,先不动声色,做一个标记;若干分钟后再突然发难……

问题是,你“发难”的时候,照样要执行退出之类逻辑;破解者只要抓到这个逻辑,修改exe文件,把相关指令跳过——你又被搞定了。

然后你说“反正我的软件性能需求不高,干脆学病毒,临执行前解码若干字节,执行完继续解码;解码前你看到的exe内容都是无意义的乱码……”

很不幸的,你“喂”给CPU的仍然必须是指令。搞一个虚拟机,把你“喂”给CPU的指令打印出来——解码方法就有了。

现在,盗版软件不需要每次执行都解码,性能是正版的许多倍——你们,都是正版软件的受害者!

当然,软件破解并不像我描述那样轻描淡写;但当年盗版产业最兴隆时,一款软件发布后几小时内被破解才是正常现象。

因为软件保护需要你绞尽脑汁,不能实时反应,也不能不反应;不能只在一处检查,也不能用同一个调用检查;不能立即检查,也不能在某个时间间隔后仅仅检查一次——最好在不同的随机时间/事件后,用不同的方式检查许多次:这些检查还不能太直白不然太容易破解(比如不能单纯检查,而是把检查和功能代码混到一起、敢跳过软件就会在一段时间的运行后出bug);但也不能过于晦涩以至于影响了软件的稳定(正版软件受害者警告!)。

而破解嘛……尽可能找到你藏着的检查逻辑、然后把它们跳过就行了。真用了几天不能用了大不了加上新条件再破解一次(所以如果过去你用过盗版软件的话,应该很熟悉“好好的软件用着用着就坏了”或者“Windows打了个补丁ps不能用了”之类场景)……

你说既然软件没辙了,我们玩硬件吧……

很遗憾。对计算机来说,硬件不过是执行访问外设相关指令后、放置在总线上的字节流。

破解者的PC是完全属于他自己的。他完全可以监控这些东西……

不,他们才不搞这么复杂呢:如果是通过硬件确认授权,他们同样可以绕过确认代码;如果是通过硬件提供关键指令/解密密钥,他们完全可以直接跳过相关代码、直接把解密后的指令/数据附加在内存中……

最“巴拉”的,你去读光盘隐藏区域的隐藏标记?没关系,用户可以用一个更好的、连这些动作都能支持的虚拟光驱(所以过去用户安装Daemon Tools这个虚拟光驱软件,基本上就意味着他是个盗版用户;某些软件甚至发现常用的虚拟光驱软件就拒绝运行——显然,这很容易破解),然后把包含暗记的iso放进去就行!

——当年软件保护最成功的案例我记得是starforce;但这个技术并非不可破解,而是厂商掏钱给全球知名盗版组织,换取他们不破解被这个技术保护的软件(然后还是被散兵游勇们给破了)。

总之,过去,业界用无数真刀真枪的案例证明了:依靠软件本身、软硬件结合抵抗盗版者的破解是徒劳的。你能做到的,仅仅是“不要被人第一时间破解”而已。

想要抵御盗版,法律以及正版意识是唯一有效的途径。

    © 版权声明
    THE END
    喜欢就支持一下吧♡
    点赞0赞赏
    分享
    评论 抢沙发