hyccyc123123 发表于 2013-8-18 22:20

问一个关于修改的问题,突然好奇~

由于正在大学读软件工程,所以真的比较好奇。发现各种数据都可以改(包括人物身高速度什么的也行),但是为什么技能不能改?不是说技能点,就是某些技能是线性提升的,为什么不能让他10级15级这样,希望能有比较专业的解释~

烟澈 发表于 2013-8-18 22:52

因为在修改器里面的那些可以修改的项目,在游戏中都是可以提升的,(个人猜测,不对勿喷)。

Ghost9999 发表于 2013-8-19 08:09

这样的话就要涉及修改游戏文件了...{:3_93:}普通的修改器都是内存修改器,只是修改游戏加载到内存里的临时数据,对游戏源文件没任何影响...

hyccyc123123 发表于 2013-8-19 09:51

Ghost9999 发表于 2013-8-19 08:09 static/image/common/back.gif
这样的话就要涉及修改游戏文件了...普通的修改器都是内存修改器,只是修改游戏加载到内存里的临时 ...

技能不是加载到内存里的么……那为什么人物高度速度都是

lpcasd 发表于 2013-8-19 11:32

本帖最后由 lpcasd 于 2013-8-19 12:43 编辑

如果是内存修改,人物钱、速度和技能点都在数据段(可读可写)中,而技能提升的形式(线性提升还是10级15级那样)在正文段中。
对于前者,只要变量类型前后一致,数据不溢出就行,ce 就是干这活的。后者的话,反汇编找入口,分配内存放置新的函数,再把jmp的地址更新好(跳转的地址是随机的)。
如果非内存修改,对于前者用 SE 改存档数据。对于后者,得改dll中的函数。
无论如何后者难度都比较大

_Kyros 发表于 2013-8-19 12:15

前者可以改文件,或者CE、PE、SE都可以,而后者的东西都在游戏内核中,就是那些未知属性文件中,较难修改。

hyccyc123123 发表于 2013-8-19 17:50

十分感谢楼上2位的回答。
页: [1]
查看完整版本: 问一个关于修改的问题,突然好奇~