20多年前的江湖,主流软件通常选用磁盘加密,那是一个能人辈出的年代,各种软件层出不穷,但是有一个软件被公认加密强大,其加密磁盘极难复制,这就是KV300+。李峰、蚂蚁、艾琳、新月等均写过复制程序,网上也流传着双星软件工作室King-Copy的大量镜像以及FDC的大量镜像,网友飞雪曾用钟世通老师的SCS软件做出“伤心”版,“乱真”版等工程文件,但经测试,确实没有一个能完美的运行所有版本。机缘巧合,最近网友西点肥牛将其倾力搜集的所有版本给了我,恰好混吃等死的我想试试还能不能提动SOFT-ICE和TR这两把大刀,于是先后淘了数台中古笔记本反复调试,终于成功完美复制出加密磁盘,完美运行所有目前能搜集到的存世版本。
为了更好的理解KV300+的加密磁盘,我们要先把时光调回到1994年,那一年诸多病毒爆发,那一年,王江民的杀毒程序晋升为KV100,意味着可以杀死100种病毒。随即KV200开始商业化并以加密磁盘为载体出售。在那个时候KV200的加密相对还是比较简单的。简单的说就是在软盘中格式化出了5对N值为6的扇区,每一对为一个CRC的扇区加上一个加密数据扇区。启动时两个扇区数据互相校验。其实后期KV300和KV300+延续了这个加密思路。CRC的扇区是不能写的,一旦写成功CRC标志就没有了,当然,KC和SCS能部分复制CRC扇区,但是,这种复制是有代价的,其复制方法是在写完扇区数据后主动复位FDC人为制造CRC,但这个方法会破坏后继扇区,所以要完美复制一定是找出加密算法,写入加密扇区。
下面进入正题,如何复制KV200的加密盘。我们以KV200(K)为例,其他版本完全雷同。
我们来看看KV200的磁盘数据。
KV300(G)版中,江民老师得到成都双星工作室技术加持,获得自编程扇区读取能力,我们以H版为例,在Soft-ice中下断BPIO 3F2,到程序领空可见采用自编程技术读出了磁道ID,并校验首扇区ID:
我们以74道为例读出成对的磁道数据并比较可以发现:
Comparing files 74-0-168 and 74-1-137:
0000070B: 58 F6
0000070C: 58 F6
0000080B: 58 D9
0000080C: 58 AE
00000DB9: 58 4E
00000DBA: 58 4E
CS:DI+B933、CS:DI+C905这里的数据还一个没用呢。还记得刚才敲黑板那个CS吗?BPM dc84,慢慢跟踪。998F+37c传递给了[88e6]然后ADD了1357。
复制KV300+磁盘需要找到正确扇区间隙,按ID格式化,将解码完成的时候的扇区数据需要校验的部分替换解码数据,再按逆运算加密后写回加密扇区。
当敲完最后一个代码,编译通过并验证完手头所有版本后,不知不觉已是数月时光,斯人已逝,却仿佛于时空完成了一次对话,再次见识了当年顶级程序员的各种技巧,技术更迭,有些东西注定会消失于我们的生活,但是精巧的设计,完美的思路,精确的实现却会一直闪耀光芒,值得动辄堆砌垃圾代码的后辈学习。
看雪ID:yaoyuan[CCG]
https://bbs.kanxue.com/user-home-891.htm
#
原文始发于微信公众号(看雪学苑):KVXXX加密磁盘制作指南
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论