说好听一点,最开始对计算机的兴趣起源于网络安全,觉得做黑客很酷。

说直白点,拥有与鹤立鸡群超乎众人的独特能力,是很多小男孩少时的梦想。要很厉害要能实现自己的心愿,其它的都不重要。

从一个热血“红客”,到撒网捕鱼的白帽子,再到跌跌撞撞的开发者。软件的攻防安全——即破解与反破解,一直都是伴随身边的话题。但身处不同的境地时,心态和行为差别都很巨大。谨以此篇纪念我有点郁闷的一个下午,让它好歹有点价值 🤦‍♀️

事情产生的原因

软件安全本身分好几个方面,有些是开发者自己的疏漏,有些是依赖的环境出了问题。就具体场景而言,存心搞破坏或是想要碰触不属于自己该有的数据和服务,这是对其的攻击。而防止此类行为的发生,保护用户及自身的权益不受影响,则是相应的防护。

最普遍也最基本的攻击,就是对软件功能限制的破解。

从草履虫到人,都是趋利避害的。对于个体而言,能省一分是一分,把钱留着买炸鸡吃它不香嘛。既然有破解版可以使用,为啥还要花钱买呢?讲道理谁都希望能有一个好的环境,但现实里没有理性人,大家都很感性,感性的意思就是自私自利,贪图小便宜。因为这些都有着非常直接的获利,人的本性如此。这是思维上的原因

从本质上看,软件代码无论以何种形式生成,最终都是由CPU按照指令集一步步执行操作。往上一层就是汇编,可执行文件到了你的电脑里,所有行为过程都能被看的清清楚楚。所以在客户端部分,绝对的安全是不存在的,只有时间和精力这种代价的考虑。无论是诸如混淆、加壳,埋暗桩还是搞一套自己的虚拟机,都是形式上提升了难度,并未在理论上彻底杜绝。这是客观的现实原因

有驱动的欲望,又有实现的可能。综合以上两点来看,世界上没有无法被攻破的软件。

当然要加上的条件是,在相当一段长甚至无限长的时间里。

未知攻,焉知防

上面总结的结论,似乎成了墨菲定律的一个例子。很多时候我们从概率的角度去看问题,就很容易归纳出这样的结论。但概率是概率,生活是生活。在面对具体情况的时候,我们还是要在种种限制中具体分析。毕竟在伟大的哲思面前,一个人的一生只是短短的瞬间。而我们还要在这个瞬间里吃喝玩乐,享受生命。

任何人都一样。所以拿一辈子的时间去破解你的软件,这种事情还是基本不可能发生的。有很大概率发生的是,当你处于一个初始阶段时,有好奇的初学者来尝试破解;当你发现有市场,开始在产品中加一些防备措施时,几个有技术同样有眼光的人看上了它;当你发展的越来越好,对数据库里这些不速之客愈加厌烦时,攻防之间的交锋开始激烈起来;最终你的公司要准备上市了,看了看报表,你决定花钱买专业安全公司的服务,从此之后一切都到了可接受的范围内。

攻防并没有消失,也没有绝对的安全出现。只是很大程度上形成了一个平衡,不让你遭受巨大的损失。

安全问题最终会转化为一个平衡问题。永远都会有那么个百分比的盗版和破解存在,这个比例会随着攻防技术的演进而波动,但不可能降为零。如果有一个产品降为零了,那它要么已经死于市场,要么就是还没被你发现。

所以知道攻击不可避免之后,我们能做的就是把防御尽可能做好。然后等着意外的发生。

平衡与妥协

花了一下午的时间查阅资料,就是想看到个一劳永逸的办法。其实心里知道,只是不愿意接受现实罢了。以前也是用着别人的盗版软件过来的,看开一点,世界上本来就没有什么完美的东西。

事物是不断变化和发展的,对于独立开发者来说,只要把产品做好,让大部分用户愿意为之付钱,而且也觉得价格合理,那么在心理上就打好了基础。然后只要保证破解的代价远大于购买正版,对大多数人如此即可。真到了一定的量级,还有法律会维护你的权益,而且也应该交给更专业的人来处理了。

人要先活着,然后活的好一点,再好一点。啥都得一步一步来。软件也是如此,实现出来,再不断迭代的更好。凡是超过一个人的事情,就总要考虑妥协的问题,我们是自己的主人,却毕竟是世界和众人的过客。妥协一下,保持平衡,这才是能够维系发展的根本

要是因为过于担忧而停下了前进的脚步,那可就得不偿失了。

( 鼓励完自己了,赶紧去继续工作…… (ง •̀_•́)ง 奥利给!)