我跟卢特拉利亚封印死磕的那些事儿

最近被公司那个傻逼领导逼得够呛。你知道吗?他非要让所有人都写那个所谓的“目标与过程管理”周报,每天坐在电脑前都得装模作样地“体现价值”,写一堆屁用没有的废话。

我当时就气乐了。为了应付这个每周五下午的汇报,我把所有活儿都提前干完,然后找点“野活儿”分散注意力。反正屏幕上开着Visual Studio,他只会看到我在“工作”。

正之前就听说过《卢特拉利亚的封印》这个游戏,玩法挺吸引人的,但大家都知道,里面那个最刺激的“绅士内容”一直是被锁住的。官方说法是要等DLC,狗屁!

我就寻思,这玩意儿肯定是被加密或者藏起来了。应付傻逼领导也是耗时间,不如干脆把这时间拿来解决这狗日的“封印”问题,这才是真正的价值体现。说干就干,我决定把它从头到尾扒一遍。

从找工具到摸到核心

一开始我就是瞎猫碰死耗子。先是把游戏根目录翻了个遍,看看有没有什么奇怪的配置文件。果然,找到了一堆资源文件,文件名都是乱七八糟的GUID。

    小编温馨提醒:本站只提供游戏介绍,下载游戏请前往89游戏主站,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

  • 第一步:资源定位。我先找了个Unity Asset Bundle Extractor(那名字太长了,就叫它UABE),把所有看起来像资源包的文件都拖进去看了一遍。
  • 第二步:目标锁定。目标很明确,就是那些贴图资源里带“Secret”或者“Gentle”字样的文件。但它们都是锁死的,而且一堆代码逻辑混在里面。我在一个叫`*`的文件里,发现了一个关键的函数,名字特别长,大概意思就是“检查玩家是否持有绅士钥匙”。

这下就清楚了,真正的封印在这DLL文件里。

反编译和硬核魔改

拿到DLL后,我直接用了DnSpy(这玩意儿真好用,比那些老式反编译器好用多了)给反编译了。

你猜怎么着?代码看得我头皮发麻。那帮程序员写得贼鸡儿绕,各种嵌套判断。但我的耐心也上来了,反正下午有的是时间跟它耗。

我对着那个“检查钥匙”的函数死磕。发现,它就干了两件事:

  • 它会去读一个外部的校验文件,看你是不是“正版受害者”。

  • 它还有一个布尔值变量叫`is_sealed_mode_active`,默认是`true`。

我把读外部文件的代码段直接给注释掉了,然后把那个`is_sealed_mode_active`变量,硬生生改成了`false`。改完之后,重新用DnSpy编译回那个DLL文件,然后直接覆盖原文件。

最终的实现:绅士模式亮了

修改完文件后,我心跳得跟打鼓似的。赶紧重启游戏。

游戏启动,熟悉的界面,然后我点进了选项菜单。卧槽!那个以前一直是灰色的、写着“DLC内容”的按钮,它亮了!

我点进去,果然,所有以前被锁住的资源和剧情内容,全都出来了。整个过程,我前后一共折腾了五个多小时。

看着屏幕上跳出来的那些画面,心里一阵舒坦。这五个小时,比我写五个礼拜的傻逼周报都有价值。至少我证明了,这世上没有什么“封印”是不能靠一把反编译的“钥匙”打开的。这感觉,比升职加薪还爽。以后哪个游戏敢跟我玩这套,我照样扒皮。

至于那个“目标管理”周报?我写了一句“本周有效解决了核心技术难题,为项目顺利进行扫清了障碍”,然后把游戏截图偷偷藏在文件夹深处,等着下周五继续跟傻逼领导磨洋工。

免责声明:喜欢请购买正版授权并合法使用,此软件只适用于测试试用版本。来源于转载自各大媒体和网络。 此仅供爱好者测试及研究之用,版权归发行公司所有。任何组织或个人不得传播或用于任何商业用途,否则一切后果由该组织及个人承担!我方将不承担任何法律及连带责任。 对使用本测试版本后产生的任何不良影响,我方不承担任何法律及连带责任。 请自觉于下载后24小时内删除。如果喜欢本游戏,请购买正版授权并合法使用。 本站内容侵犯了原著者的合法权益,可联系我们进行处理。