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

被折叠的 条评论
为什么被折叠?



