"隔离幻想游戏的木马广告"介绍了c8程序的基本情况,不知道c8为何物的朋友可以参阅这篇文章。当时,我为了在使用金山毒霸的同时继续玩幻想游戏而写了一个补丁包,这个补丁包既帮助c8程序躲开毒霸的查杀,也限制它访问网络。
这两天,本来想翻译《仙女婆婆和童话王国》这个游戏给家里人玩,因此仔细看了看捆绑c8的游戏程序,发现c8程序的捆绑方法非常简单。设原始游戏的主程序名是game.exe,我下载的几个幻想游戏的捆绑方法都是这样的:
我们在运行游戏后,可以在进程管理器中看到两个进程:游戏程序名(例如TileQuest.exe)和c8.dll。其中具有“游戏程序名”的进程其实是c8程序,c8.dll才是真正的游戏进程。这时我们只要结束具有“游戏程序名”的进程,就可以专心玩我们的游戏了。
根据上面的介绍,我们可以删除掉游戏目录中的主程序(例如TileQuest.exe)以及所有c8相关文件(包括Captive8目录),然后将c8.dll改名为主程序名(例如TileQuest.exe),这样就得到一个干净的游戏程序。我测试过我下载的几个程序,这样处理后都可以正常运行。
将c8.dll更名后得到的游戏程序和原始游戏程序的区别仅是加过壳。所谓加壳就是用壳程序包装原始程序,将原程序压缩、加密后作为壳程序的数据。运行时壳程序先执行相反操作得到原始代码,再执行原始代码。
我们可以将c8.dll脱壳,得到原始的游戏程序。例如《仙女婆婆和童话王国》的c8.dll是用Aspack2.12加壳,只要用工具AspackDie就可以直接脱壳,得到游戏程序。再将游戏中所有c8相关文件全部删除,将真正游戏程序的名字恢复到fgt_o.exe,就得到一个干净的游戏。
起初,我没有注意到将c8.dll直接改名就可以运行。为了自动关闭c8程序,我特意写了一个叫作kill_c8的小程序。使用kill_c8可以启动假冒游戏程序的c8程序,kill_c8在等待c8程序将真正的游戏程序解壳运行后,就立刻结束c8程序进程。我是这样使用kill_c8的:
有类似需求的朋友可以下载kill_c8,按上述方法使用:
熟悉编程的朋友可以下载这个程序的源代码。
如果将c8.dll直接改名就可以运行,那么kill_c8和"隔离幻想游戏的木马广告"中介绍的c8补丁包就都没有什么用了。不过,kill_c8程序对学习编程的朋友可能有一些参考价值,这个100多行的程序较好地演示了如何创建进程、枚举进程和终止进程。
幻想改进了捆绑的方式,我写了一个解绑机。不熟悉电脑操作的朋友可以用解绑机执行解绑文件为游戏解绑;熟悉电脑操作的朋友可以自己制作解绑文件,并发布解绑文件与其他朋友共享。详见“c8解绑机使用说明”