尘封三十年,KV300杀毒软件反盗版技术
2010年4月,王江民先生离世。作为中关村第一代最成功的创业者,王老师的一生可以称得上传奇。只有初中文化的他,38岁开始学习编程,45岁只身前往中关村创业成立江民科技,专业研发KV系列杀毒软件。
短短数年,KV杀毒软件成了中关村的硬通货,攒机商可以用一盒的KV300代替人民币进行交易,在今天看来简直就是神话一般。在那个杀毒软件最火的年代,江民公司使用王江民自研的大块头磁盘机,不停的写入新盘片,在贴上标签装箱,分销商就在门外排队交钱拿货。1996年仅凭这些软盘,江民公司就能月入超千万。

回顾完这段历史,或许大家都会有疑问,在那个连光盘都尚未普及的年代,单纯通过软盘载体销售杀毒软件,不会有盗版吗?事实上,不仅有盗版,而且还特别疯狂,当年有个叫做“中国毒岛论坛”的网站,就时常提供破解工具下载,不过最后很多盗版商都被江民公司“坑“了一把,这是后话,暂且不表。
我们先来说说KV杀毒软件是怎样在技术层面上对抗盗版的。
在软件发行主要依赖软盘的年代,针对载体进行加密处理是最主要的技术手段。一张标准的容量1.44MB的软盘有80个磁道,每个磁道18个扇区。KV300的加密盘会在特定位置(比如73、74磁道等)格式化出特殊的扇区,这些扇区的ID和实际数据格式并不匹配,成为了最重要的“指纹”,在这些特殊的磁道里会写入随机的密钥、磁道ID校验码、版权签名。而因为打乱了扇区之间的物理间隙,所以普通的复制工具在读取磁盘时直接报错,无法复制数据。

KV300启动的时候,会先绕过DOS的接口,直接用底层的方式移动磁头读取特定的扇区,如果没有找到软盘,KV300就会提示插入正版KV300密钥盘并退出。如果读取到了数据,就识别之前写入的密钥+磁道ID校验+版本签名,有一个不通过,就说明这是非正版,直接退出。
检测到了非正版直接退出是软件公司一贯来的做法,但是江民科技面对当时汹涌的盗版潮,做出了一个现在看来非常大胆的决定。1997年,为了打击使用“MK300V4”工具制作盗版密钥盘的行为,王江民在KV300L++版本中埋下了后来闻名全国的“逻辑炸弹”。
一旦程序检测到系统正在使用盗版密钥盘运行,逻辑炸弹就会被触发,它不是简单的让程序停止运行,而是直接对计算机硬盘实施软件层面的打击,修改分区表,可以把扩展DOS分区的表项指向一个错误的位置,从而在系统启动时形成一个死循环引用,导致电脑无法正常启动,硬盘灯常量,仿佛被锁死。
这种修改方式非常特殊,在当时来说只能用DOS2.0这种不支持硬盘分区的系统软盘启动机器,然后手工修复分区表,对普通用户来说简直就是无法完成的任务。后来公安部份认定江民科技此举违反了《计算机安全保护条例》,属于故意输入有害数据,对江民科技处以3000元罚款。
在当时来看,KV300这套加密技术几乎是无解的。密钥隐藏在非标准磁道里,传统的复制工具根本无处着手,只能用专业的磁盘分析工具扫描。每张正版软盘的密钥都不同,只复制程序毫无用处。再加上令盗版商闻风丧胆的逻辑炸弹,心有余悸,硬盘直接被锁死数据恢复不了。
同时KV300还采用了当时非常先进的阶梯式加密法来防止反跟踪,代码不是一次性全部解密,而是像爬楼梯一样,执行完A段才能解密B段,B段执行完了才能解密C段。破解者必须跟着程序一步一步走,在每个阶梯都可能遇上新的反调试陷阱,极大增加了分析的复杂度和时间成本。

KV300利用“不完全格式化”技术,在90年代硬件受限的条件下,使用存储介质的底层特性做防盗版,无疑是成功的。如今软盘早已淘汰,很多年轻的孩子根本没见过。而软件的加密也变成了云端激活、硬件绑定等等方式,甚至杀毒软件都免费了。
“不是我不明白,这世界变化快。”
