分页: 1 / 2

[教学]用vim做游戏修改器

发表于 : 2007-06-10 21:46
xiechy
呵呵,这个题目夸张了点~首先我们看看游戏修改器是怎么来修改游戏的。

我初中的时候玩仙剑,当时没有现在这么多的方便灵巧的修改器,最好用的也就是game master了吧,还有什么fpe之类的吧。不过我只用过pctools,而且只用了它的二进制编辑功能~

游戏修改器要能够读取游戏的进度(可以是内存中的),可以确定要改的数值在哪里,可以安全的修改~能做到这几步,就是一个合格的修改器了~如果这样说,那么,vim也可以做到哦!
  • 首先,我们打开仙剑,买上20个水果~嘿嘿,不要说这点钱都没有,说,黑脸大个的赏钱哪去了?好,这是可以存档了~
  • 备份进度后,用vim打开刚才的进度,按下:键,进入命令模式。然后输入%!xxd
  • 看到没有,一堆乱码是不是变成了正常的二进制符了?呵呵,别急,保存文档,注意,这个文档现在可不是二进制的了,现在已经是简单的文本文档了~
  • 把水果吃掉一个,依样画葫芦的制作另外一个文本文档,然后嘛,呵呵,比对文本文档最好用的工具是什么?当然是我们的diff命令拉!diff两个文件,很容易的就可以看出不同之处在哪,注意了,仙剑是用的明码储存的,也就是说20个水果,在内存中应该就是14,19个水果16进制就是13,呵呵,这下,很容易就看出哪个数字段是物品了吧?要猜不出来,继续上面的过程~
  • 好了,找到地址段了,现在可以安全的存档文件修改了,嘿嘿,接着是让文本的文档重新变回二进制~同样的,在命令界面:%!xxd -r,就可以让文本重新成为二进制,保存好。提取旧的回忆~嘿嘿,是不是就有很多水果了?
提示一下,如果我没记错,金蚕王的代码是96,吃一个升一级,嘿嘿~~

总结:

1、关键是命令:%!xxd是什么意思

%代表对全文件适用,!代表执行的是外部命令,xxd是以十六进制形式表示的命令行程序。所以合起来就是说:对整个文件,都将二进制代码用十六进制标识出来~

那么:%!xxd -r是什么呢?嘿嘿,r当然是reverse,反向动作拉~

2、那vim是不是可以当做ultraedit来用?

嘿嘿,bingo!以前记得有人问过,有没有可以象ultraedit一样可以进行列选定的工具~远在天边,近在眼前~还记得在visual模式下Ctrl+v的作用么?

好了,不打扰大家玩游戏的时间了~哦,不是改游戏的时间了~[/list]

发表于 : 2007-06-11 11:28
kelvinhan
学习中,顶 :lol:

发表于 : 2007-06-11 13:31
thebye85
这也行,真是高人 :shock: :shock:

发表于 : 2007-06-11 15:06
eexpress
给我修改下doom3试试

发表于 : 2007-06-11 18:14
xiechy
我不玩fps类~~这只是照着以前pctools的改法罢了~

不过为了负责,我也试过仙剑在dosbox下的修改了~恩,是成功的~96确实是金蚕王~

至于doom3,呵呵ee自己试试吧~本文纯属为了介绍vim的二进制编辑功能而做~

发表于 : 2007-06-11 18:15
xiechy
玩仙剑,是初一吧,想想现在十年了~~唏嘘~

发表于 : 2007-06-14 18:47
TheThirdGhost
好啊。

发表于 : 2007-06-14 21:06
zmcbb30
:em38 :em50 :em50

原理跟金山游侠一样

能直接弄个程序出来就更强了

发表于 : 2007-06-14 21:10
skyx
感谢xiechy,感谢ustc 感谢cctv 感谢channel v

可是:
cathay4t 写了:煽动别人打游戏的和买鸦片的没什么两样。

发表于 : 2007-06-15 14:02
TheThirdGhost
为什么我做的文件用diff结果是没有任何差别,我明明已经吃了两个金王啊。

发表于 : 2007-06-15 14:22
TheThirdGhost
原来是开错档了,汗死。
金蚕王的代码在131行,0096 XX00
其中XX代表数目,最大63(99个)

发表于 : 2007-06-15 16:08
ltkun
vim 真是个好东西

发表于 : 2007-06-15 18:35
xiechy
skyx 写了:感谢xiechy,感谢ustc 感谢cctv 感谢channel v

可是:
cathay4t 写了:煽动别人打游戏的和买鸦片的没什么两样。
呵呵,这个嘛,确实是,我错了,我真的错了,我当时就不该玩,要是我不玩,成绩也不会这么烂,就不会来合肥,不来合肥,就不会进实验室,不进实验室,就不会弄linux,就不会写这篇堕落的文章~~sign~

发表于 : 2007-06-16 11:49
Robinho
存档读不出来了。

我试过就是单单执行 %!xxd ,然后执行 %!xxd -r ,diff两个文件都不同了。

:shock: :shock:

发表于 : 2007-11-15 1:04
seeghost
仙剑仙剑,高二玩仙剑98柔情版,差点哭出来!
之后便一直是她的狂热fans
现在有哪位能在linux下玩上仙剑4的?