【编者按】本文作者启明星辰VP shotgun,为雷锋网读者独家撰文分析:为什么盗版软件经常会不稳定?死机蓝屏或者是功能不正常?
盗版软件经常不稳定是一个事实,原因很复杂,笔者尝试着从多个方面对其进行分析。
1、盗版者破解正版软件的方法与其他软件发生了冲突。
一般对正版软件的破解如果能够制作出注册机keygen,那么算是比较完美的破解方式。
此时的主要风险是注册机本身是否带毒,特别是有些注册机要求必须在本机以管理员权限执行(因为需要取得硬件信息),所以不能用虚拟机运行去防范风险。但制作注册机要求对该软件的注册模式十分清楚,而且破解了注册码的加密算法,有些软件因为加密强度或者是防盗版方式不同的原因,是没有办法采取这种方式的。
第二种常见的方式是直接修改目标软件的二进制文件。
最简单的是目标软件采用验证注册码的模式,这时只需要把之后的跳转语句从类似JNZ修改为JZ,或者直接JMP(修改了判断注册码是否为真的条件,相当于把“如果注册码正确则跳转”修改为“如果注册码错误则跳转”或者“不管如何都跳转”)。这样的破解,并不会增加被破解软件的不稳定性。
但是因为技术对抗的原因,现在的正版软件并不会给你一个简单的条件判断,而是会利用一些隐藏逻辑在多次多处进行判断,甚至有些是隐含在业务逻辑中的,此时贸然修改其中的一部分逻辑,很容易导致程序在某些特定情况下发生不可预测的后果。例如,虽然跳过了注册码验证部分,但是注册码内含了某个业务参数,盗版软件的这个参数变成了零或者随机数,在需要这个参数的业务模块,软件可能会出错甚至崩溃。此时,盗版软件不稳定的主要症状包括:计算错误、随机崩溃等。
由于对抗反编译技术越来越成熟,直接修改目标软件的二进制文件有时会是非常巨大的工作量,因此第三种常见的模式是制作loader(加载器),并且在内存中实时监控修改关键的参数(源二进制文件无论如何加密混淆,送到操作系统执行的时候必须解密,操作系统才能识别),而这种方式是更加不稳定的,因为加载器可能会使用到一些底层的技术对内存进行修改,从而实现截获修改特定参数的功能,这些底层技术功能很有可能与目标软件或者系统内的其他软件(特别是安全防护软件)发生冲突,导致整个系统不稳定。此时盗版软件不稳定的症状会更加严重,例如会导致系统蓝屏、崩溃甚至无法启动。
2、盗版软件自身带毒。
破解软件,特别是破解通用软件本身并不能盈利,但是围绕软件破解,有完整的黑色与灰色产业链,其中就有利用流行盗版软件进行挂马盗号等恶意行为。无论是注册机还是直接破解的盗版软件,都有可能被第三方嵌入恶意代码,对盗版使用者的机器进行入侵,盗窃账号、密码、隐私、资金等,其中一个副作用就是这些恶意代码为了绕过防病毒软件的检测,很可能会使用一些导致系统不稳定的技术。
也有一些恶意软件本身就是为了窃取被攻击者的计算资源,进行比特币挖矿、密码破解、分布式拒绝服务攻击等行为,这些也都会导致盗版使用者的电脑不稳定或者运行速度下降。
此时盗版软件的不稳定症状主要有:计算机速度变慢、笔记本过热、风扇速度加快、内存消耗过大、网络速度变慢等等。
3、正版软件防盗版措施中针对盗版进行了稳定性限制。
部分正版软件,特别是一些价格昂贵的行业软件,有可能会针对盗版进行稳定性或者功能限制,即:检测到盗版后,并不立即退出,而是随机的崩溃或者功能出错,这样可以让使用者逐渐厌倦使用盗版,而去购买正版软件。此时盗版软件的主要症状是:特定功能不能使用,或者随机退出。
4、盗版软件缺少充分的兼容性测试,可能会引发其他软件的bug。
大家知道其实整个计算机环境是有大量充满着bug的软件共同构成的,之所以正版环境我们看起来还算稳定,并非是因为软件本身没有bug,而是因为这些常用的正版软件间经过了大量的测试和调整。在大多数情况下不会发生冲突,而盗版软件很难具备同样的条件,其他软件既不会投入精力与盗版软件进行兼容性测试和调整,也不会协助盗版软件建立测试环境,或者调试bug,盗版软件之间就更加容易发生冲突(可能会采用类似的破解技术)。
有的时候正版软件发现了已知的bug后能够通过自动升级等方式修复这些不稳定的因素,但是盗版软件是没有售后服务的,用户也只能继续使用着不稳定或者存在安全漏洞的低版本。
在这种情况下,使用盗版软件的计算机不仅不稳定,也很容易成为攻击者的目标,被植入木马后门病毒等等,甚至有可能导致银行账号被盗。
综上,由于盗版软件实际上有很大的可能会往系统或者软件内部插入一段没有经过充分测试的代码,而且这段代码的权限还颇高,操作也比较危险,因此,有相当的可能性会导致软件或者系统不稳定。
5、心理作用。
不可否认的是,大家觉得盗版软件不稳定,除了上述的原因外,也存在着心理作用的因素,当一台计算机不稳定时,如果我们找不到原因,会更加倾向于怀疑盗版软件而不是正版软件。