从拿到手到差点扔键盘
兄弟们,今天这趟水趟得是真不容易。自从听说这个《影之奠》出了新安装包,号称解决了之前卡顿和存档丢失的毛病,我这心里就痒痒,晚上饭都没吃踏实。我这个人你们知道,不就是爱折腾吗?立马跑到那个老地方,费老劲了才搞到手——一个七零八落的压缩包,里面还夹着一堆不知道干啥用的补丁文件。
我心想多大点事儿?以前装那些老游戏哪个不是这个德行?立马就开始解压。我用的是最稳妥的那个老版本的7z,一个多小时,进度条慢悠悠地挪。解压完了我一看,好家伙,里面文件名都是一串乱码,一看就是老外传过来没转码。这我忍了,挨个重命名,找到那个一看就是主程序的exe文件,双击,准备迎接胜利。
结果?屏幕上直接弹出一个窗口,上面写着一串我现在都背得下来的错误代码:ERROR_DLL_LOAD_FAILURE_0x7B。妈的,DLL文件加载失败?我这机器干净得跟什么似的,怎么可能缺文件?我第一反应是,是不是缺那个老掉牙的VC++运行库?跑去装了一遍,重启,再试。不行。
我开始仔细看那个压缩包里附带的那个只有几行字的txt说明。那说明书简直是天书,写得跟加密电报似的。里面有一句关键的,说是安装前必须把系统时间调到2015年11月12日。我当时就愣了,现在都什么时候了,还玩这套?
被一个时间戳卡住的深夜
我照做了,把系统时间改回去。再运行。这回终于不是DLL报错了,而是直接告诉我:“数字签名验证失败,请联系软件供应商。” 联系谁?联系那个在俄罗斯论坛上分享了这玩意儿,账号头像还是个动画片人物的老哥吗?开什么国际玩笑。
当时已经是凌晨两点半,我看着屏幕上那个冰冷的错误提示,突然就觉得心里一股无名火窜上来了。这种感觉,就跟我四年前,为了给我那台老ThinkPad换屏幕边框时一模一样。
那年,我那台用了八年的老伙计,转轴那里突然就裂开了。去官方维修点一问,好家伙,换个外壳比买个新的还贵。我当时手上没什么钱,想着自己动手丰衣足食。去淘宝买了边框和转轴,结果回来发现,根本拆不下来。
官方手册上写得轻巧,说用个撬棒就能搞定。但我一上手,那塑料卡扣死活不松。我不敢使劲,怕直接把屏幕掰断了。我把所有能找到的中文论坛和英文论坛都翻了个遍,大家说的都差不多,要么就是“温柔点”,要么就是“大力出奇迹”。
- 温柔点?试过了,不行。
- 大力出奇迹?风险太大,不干。
我当时就跟现在装这个《影之奠》一样,卡在一个死结上,所有的“正规”路子都走不通。
瞎折腾和意外的顿悟
那段时间,为了修那个转轴,我简直是魔怔了。饭桌上想,睡觉前也想。在一个几乎沉寂了快十年的老硬件爱好者的博客里,我找到了一篇关于如何拆解那个型号机器的帖子。那篇帖子不是文字,而是一张糊得要命的GIF动图。
动图里那老哥也没用什么专业工具,他就用了一个磨尖的吉他拨片。他没有直接撬缝隙,而是先用热风枪沿着边缘吹了三圈,让里面的双面胶软化,然后用拨片从一个非常刁钻的角度捅进去,一推,卡扣才松了。
我当时一看,拍大腿!对,这东西不是硬卡住的,是胶水!我立马跑去翻我的杂物箱,找出以前玩乐队时剩下的拨片,用砂纸磨尖。加热,捅进去,果然,‘咔’的一声,边框下来了。
你看,这跟今天安装《影之奠》不是一个道理吗?官方流程、运行库、重启,这些都是表面的东西。真正的问题,往往藏在那些不起眼的地方,需要一点歪门邪道或者说非主流的实践经验来解决。
发现的蹊跷和总结
从我的回忆中抽离出来,我回到电脑前,重新审视那个报错。我开始往深处想:为什么非得是2015年11月12日?这个时间点有什么意义?
我决定再回去那个7z压缩包里瞎翻腾。我在一堆乱七八糟的文件里,找到了一个名为patch_*的文件。我用文本编辑器打开一看,里面全是十六进制的字符,但在开头的一串注释里,我看到了天大的秘密:这个安装包依赖于一个在2015年那一天被泄露的原始验证文件,后来这个文件被官方封杀了,所以新版安装包得靠“装死”的方式来躲避系统的验证。
解决方案就是:
- 把系统时间调到2015年11月12日。
- 断网,彻底断网。
- 把那个
patch_*文件复制到系统根目录下的一个隐藏文件夹里(我甚至得手动创建这个文件夹)。
这三步走完,我再次双击运行。这回进度条终于顺利跑完了!没有报错!我当时激动得差点把咖啡泼了。这年头,装个新东西比考研都难。
我的经验就是,当你被一个看似无解的技术问题卡住时,先别急着砸电脑,深吸一口气,想想看,有没有什么反常识的、非官方的、但确实有人用过的方法。很多时候,技术上的死锁,只需要一点人情世故或者一个历史遗留问题就能解开。今天的折腾,值了。