九十年代初,个人电脑尚未普及,我正值大学时光。彼时学校开设了 BASIC 和 FoxBASE 课程,但在那个通信尚靠纸笔、红袖添香更是奢望的年代,电脑游戏便成了穷学生最亲切的慰藉。
为了在虚拟世界中获得更好的体验,我开始琢磨起两件事:一是如何修改游戏人物的各项指标,比如生命值和宝物数量;二是如何与机房老师斗智斗勇,争取更多的上机时间。这两件事,在无意间开启了我的技术启蒙。
01 博弈
玩《三国志》时,为了提高武将的逃跑成功率,恨不得人手一匹赤兔马。那时互联网只是传说,既无攻略论坛交流,也无现成修改器可买,唯有自己动手,丰衣足食。
于是,我从汇编语言学起,钻研操作系统底层逻辑与文件加解密技术,甚至为了防止自己的“作品”被随意复制,还专门编写了一个压缩软件。这种出于游戏需求的“逆向工程”,实际上是思维方式的巨大转变。
编制工具软件与开发应用程序截然不同:后者有成熟的高级语言,只需专注算法逻辑;而前者必须直面电脑的物理层面,与操作系统底层、文件存储、扇区读写短兵相接。
这段“小打小闹”的经历让我受益匪浅。日后接触 Windows、Mac OS 等保护模式操作系统时,我不再感到陌生;每当遇到系统故障,思维本能地就会下潜到机器代码的层面去寻找病灶。
; ========================================== ; 函数名: ReadDiskSector ; 功能: 读取 1 个磁盘扇区到内存缓冲区 ; ========================================== ReadDiskSector: ; 1. 准备内存缓冲区 (ES:BX) MOV AX, 0x07C0 ; 目标段地址 MOV ES, AX ; 加载到 ES MOV BX, 0 ; 偏移量 0 ; 2. 设置读取参数 (CHS 寻址) MOV AH, 0x02 ; 功能号:读取扇区 MOV AL, 1 ; 读取数量:1 MOV DL, 0x80 ; 0x80 = C盘 MOV CH, 0 ; 柱面 MOV DH, 0 ; 磁头 MOV CL, 2 ; 扇区 (从1开始) ; 3. 调用 BIOS 中断 INT 0x13 ; 磁盘 I/O 服务 ; 4. 检查结果 (CF标志位) JC ReadError ; 失败跳转 JMP ReadSuccess ; 成功跳转 ReadError: CALL ResetDiskController JMP ReadDiskSector ReadSuccess: RET
90年代初的游戏数值基本不加密,32就是32,顶多换算成十六进制的 20H。通过反复比对数值变化,缩小搜索范围,总能定位到物理存储地址。改多改少全凭心情,要面子的翻个倍,没底线的直接改到溢出。
正是这种商家与玩家的博弈,催生了后来日益复杂的加密技术。道高一尺,魔高一丈,随后出现了由台湾团队开发、大陆金山等公司跟进的专业修改软件。这些工具背后的思路,也能轻松破解许多加密文件。再后来,随着专业软件的普及,自己手写工具已无必要。回想 DOS 时代,许多技术门槛并不高,关键在于是否钻研。那段没钱也没女友的时光,或许恰恰成就了一批早期的电脑专家。
02 机房
当年的机房,如今叫网吧,其正式名称是学校运营的计算机实验室。凭卡上机,每小时一元,多买虽有优惠,但在当时对学生而言仍是一笔不小的开销。
初见 IBM 486 时,唯有“惊艳”二字可以形容。此后经手的电脑虽性能千倍于它,却再难找回那份最初的触动。
现在的孩子很难理解用三十多张软盘轮流插入、只为安装一个游戏的滋味,更难体会在没有存档功能的年代,电脑死机后心血付诸东流的无奈。当时机房电脑分为 C、D 两区,C 盘不仅容量小而且被施加了写保护,个人应用只能装在 D 盘,重启即遭清空。
于是,“破解硬盘写保护”迅速上升为主要矛盾。这涉及 BIOS 操作,不像今天百度一下便知,我们几个同好研究了数月才攻克难关。对此,老师们也是睁一只眼闭一只眼。机房角落的几台电脑逐渐成了我们的专座,甚至成了我们通过隐藏文件在 C 盘交流资料(包括各种图片)的秘密基地。
当时有位机房老师长得颇像影星吴启华,技术精湛但对学生有点凶。学校机房是严禁玩游戏的,但游戏恰恰是我们的第一需求。老师值守机房也很无聊,也要靠打游戏打发时间。一天,我看他玩游戏总卡在某一关,便悄悄告诉他生命值的存储地址。他是科班出身,一点即透,随手就将数值改到爆表——如今流行的“爆表”一词,我们在二十年前就身体力行了。自此建立起“革命友谊”,我便专挑他值班时去上机,省下了不少机时费。
03 网络
我首次接触真正的网络,是在附近理工大学的 Novell 局域网。
当意识到海量资料可以通过网络存取,甚至能与他人实时文字聊天时,世界观被刷新了。联网电脑与单机竟是如此不同!单机游戏打得再好,战胜的不过是冰冷的逻辑,何况还常伴随着作弊。而联网对战,屏幕对面是与你一样绞尽脑汁的真人,这种对抗的变数与乐趣是无限的。
也是在理工大的机房里,我第一次接触到了 Unix 系统。它那复杂的指令集和深不见底的功能瞬间超出了我的认知,却也散发着迷人的魅力。如果说 C 语言是一辆汽车,那 Unix 就是一架航天飞机,能带你驶入浩瀚的未知。
C 语言编写的程序可直接在 Unix 下运行,这一点极具优势。相比之下,汇编语言虽能直接操纵硬件,却过于原始繁琐:一个简单的文件操作就需要数百行代码,调试稍有不慎便是数小时的挫败。而 C 语言不仅高效,相比晦涩的汇编,就连常被人诟病的“指针”也显得眉清目秀起来。
04 语言
C 语言及其衍生的 C++、Visual C,至今仍是编程界的基石。即便在人工智能大行其道的今天,那些花样翻新的新语言,归根结底都建立在 C 语言打造的生态系统之上。
互联网时代初期,JAVA 曾如日中天。它可视为 C 的简化版,剔除了直接读写内存等易导致系统崩溃的危险操作,保留了相似的语法,并加入了 Socket、类等特性。
class CardGame { void main() { System.out.print("Da Gunzi Supported"); } } // JAVA: Write Once, Run Anywhere
JAVA 的核心优势在于跨平台:编程时无需考虑对方的硬件配置,只要安装了虚拟机,代码便能通行无阻。这对网络编程而言是划时代的——所谓划时代,往往就是把人从简单的重复劳动中解放出来的思想。
JAVA 流行时,我身在大连——一个将扑克牌游戏“打滚子”视作社交礼仪的城市。业余时间,我用 JAVA 写了个支持局域网四人对战的“打滚子”游戏,那时联众游戏平台尚未诞生。
与 JAVA 相关的另一个概念是 JavaScript(JS)。它在设计思想上继承并精简了 JAVA,但二者并无血缘关系。如今打开任意网页,大半是 JS 与 PHP 的天下。由于 JAVA 和 JS 都严格限制对本地硬件的读写,要想实现对远程电脑的深度操控(也就是所谓的黑客行为),往往还得回归到 Unix 时期的网络技术,重拾 C 语言系列。
如今,编程有 Python,数据库有 MySQL,脚本有 PHP,技术门槛比 C 语言时代降低了许多,更重要的是形成了拥有海量拓展功能的完整生态。
05 驻留
在 DOS 时代,控制电脑的常用手段是编写“内存驻留程序”(TSR)。
这类程序表面上已运行结束,实则潜伏在内存深处,监听键盘、鼠标、硬盘等中断信号。记录键盘敲击在技术上非常简单,真正的难点在于如何神不知鬼不觉地混入系统、躲避杀毒软件并抹除痕迹。因此,TSR 技术堪称早期黑客的入门必修课。
进入 Windows 时代后,汇编语言逐渐隐退,C 语言接过了这一接力棒。而在网络时代,驻留程序不再局限于监听,更多的是留下预设口令的“后门”,用于远程窥探或将信息回传。对于普通用户而言,只要不随意安装来路不明的软件,配合正版系统和防护软件,被黑的概率依然很低。
06 Web
1996 年前后,电话拨号上网开始走进中国普通家庭。那时一台电脑的价格相当于普通人一年的收入,其经济压力不亚于今天买车。直到 1998 年克林顿“拉链门”事件致使雅虎瘫痪,人们才惊觉网络已然成为公众获取信息的核心渠道。
雅虎(Yahoo) 曾一手揭开了门户时代的序幕,极具远见地整合了搜索、浏览与邮件服务,定义了初代网民的“冲浪”方式。虽时过境迁,它已不复当年的统治力,但作为数字世界的拓荒者,依然值得敬意。
2002 年,局域网和宽带互联成为许多单位的标配。同年,我负责建设单位的办公网络,从服务器端能清晰看到每个节点的数据流向,那一刻我不禁感慨:网络无隐私。项目验收后,我迅速移交了管理权——既因志不在此,也深知这是个风口浪尖的位置。
2002 年以前,大多数人只是网络的看客,互动仅限于聊天室、QQ 和 MSN。
聊天室:那是谈人生哲学的地方,当然更多时候是在约会和吵架。随着移动互联网兴起,它逐渐式微。
MSN:背靠 Hotmail,在谷歌崛起前曾不可一世。
QQ:如今的国民软件,但许多人或许不知道,早期的 QQ 号注册是需要付费的。这种“收费”往往并非初衷,而是激烈的生存竞争所致。但历史证明,自由与免费,才是互联网不死的灵魂。
让大众真正知晓“博客”概念的,是两位女性。
一位是竹影青瞳,2002 年前后她在博客上发布了大尺度个人写真。虽如昙花一现,却让公众第一次见识了博客的传播力。
另一位是木子美。2003 年前后,她以一份《遗情书》及录音引爆网络,其筛选男记者的标准更是惊世骇俗。
天涯影响了一批事件,创造了一批语汇,更塑造了一批名人,堪称网络时代的黄埔军校。木子美文笔洗练,目光毒辣,撕开了无数伪装。如今其名虽已成敏感词,恰如《红高粱》上映后,无数高粱地应声倒伏。
若干年后,新浪微博上曾活跃着一位文笔辛辣的“不加V”,人称木老师。后来“不加V”也销声匿迹,据说已化身为一只乌鸦,继续点醒世间道貌岸然之辈。鸟在文化中本就地位非凡:三足乌是太阳之灵,凤凰能浴火重生,密涅瓦的猫头鹰更是智慧的化身。看着木老师那些曾经的爆文,倒真让人对鸟类油然起敬。
07 后记
本文是将我 2014 年发布的几篇零散微博整理而成的合集。
发布在微博等第三方平台的文字,往往会随着账号的变迁无声无息地消失,这篇旧文便是一例。好在我一直有自行备份记录的习惯。本次重发,顺应时势删减了部分内容,并略作修饰。
2026年1月5日 补记