同人星球BBS
->
游戏修改
->
[CE教程]游戏修改_动态地址的静态化
[打印本页]
登录
->
注册
->
回复主题
->
发表主题
修改众
08-02-07 04:47
动态地址的静态化
很抱歉,如果你看不懂我写的这些代码,那你还是放弃吧。
我没办法教会你如何看汇编代码。
很多游戏地址是动态的。
即这些地址在编程的时候,是作为局部变量来对待的。
局部变量在子程序结束后,空间就被回收,所以被称为动态地址。
不过也不是没有办法对付,下面就说1种简单易行的方法。
用撕裂重罪2.02做的例子。
因为这个游戏的hp,每次重新选择人物都会改变。这就是动态地址最常见的1种。
选择1p vs 2p模式。1p是raven。raven有1w HP。
或者你也可以用模糊搜索来找到这个hp,就是1w。
这个不重要,我要说的是如何把动态地址静态化。
结果只有7个 图
[attachment=1949]
然后让2p打1下1p,看到列表中有1个地址变化了。
是的,这就是当前1p的HP地址。
添加到地址列表,然后右键"find out what write to this address" 图
[attachment=1950]
会出现1个窗口,说明CE已经开始监视代码了。
再让2p打1下1p,代码窗口中出现了很多内容。
不过经过观察,很容易就确定了这个才是改变HP的代码。
mov [esi+0000051c],eax 的意思就是将eax的值,放到指针esi+偏移量51c的那个地址中。
这里eax就是当前的hp,esi是玩家1的指针,51c是hp的偏移量 图
[attachment=1951]
选中这个代码,点"add to codelist"
把代码地址保存起来,除非你认为以后再也用不到它了。图
[attachment=1952]
再点"show disassembler"打开汇编窗口。
我们要做1个指针,用来保存这个esi。
菜单"view" "memory regions" 打开内存区域列表。
选择1个 属性是 "Excute+Read+Write"的区域。
注意,这个区域至少要从00401000开始,也不要太后面。
大概004x0000-00ax0000 这个范围
嗯,这次我选择的是这里"009b000"
[attachment=1953]
然后我们在汇编窗口中按Ctrl+G,直接输入009b1000,来到这个区域的最后部分
009b1000 后面都是 ???,这是因为这部分区域没有使用。
1个指针占用4个字节。虽然可以随意使用的地方不太多,不过放1个指针还是足够了。
注意,只能选择00 00 的地址,不要去占用原本有代码的地址。图
[attachment=1954]
在CE主窗口,点"add address manually"
手动输入我们打算用来做指针的地址"009b0ffc" 图
[attachment=1955]
指针添加好了,下面就该编写代码来把指针保存到这个地址了。
汇编窗口中按Ctrl+A 打开自动汇编脚本编辑器。
像这样写好代码。 图
[attachment=1956]
菜单"File" "assian to current cheat table",
把写好的脚本添加到地址列表,改个名字 图
[attachment=1957]
运行脚本,然后回到游戏。再让2p打1下1p。
1切正确的话,009b0ffc地址会出现数值。
这个值就是esi的值,也就是玩家1的指针了。
[attachment=1958]
还记得HP的偏移量是多少吗,是51c
再点"add address manually",输入我们那个指针的地址和HP的偏移量。图
[attachment=1959]
如果你没写错的话,你就可以看见HP的数值了,和我们之前找到的那个1样。
不同的是,这个是1个指针。
[attachment=1960]
为了验证指针是否有效,重新选择1次人物。
然后把指针重新设定为0,再让2p打1下1p。
1p HP的值就会自动出现了。
[face49]
124732956
08-03-14 21:35
太好了,写得非常详细,不足的是,有一点看不明白,...... [s:5]
basaraking
08-03-15 23:29
楼主用的什么修改器啊?
我没见过么..
有什么比较好的推荐下呢
边走边爱
08-04-06 21:08
这修改器是英文的,虽然很详细,但是点哪个选项呢,,,,,, [s:8]
syana
08-04-08 10:21
[s:4] 好教程~
看来CE我还是属于简单应用的阶段……
elliotor
08-04-08 20:51
很有用的修改.........明白是明白了- -.......可是不会写汇编代码....... [s:5] ,哪里有教么?
修改众
08-04-08 23:19
汇编简明教程
百度这个词语就能找到1大堆下载了。
当然学起来就不像下载这么简单罢了。
wtv.ur
08-05-19 23:08
……不知为什么这里看不到图……如果看得到可能会懂……另外CE是指cheat engine么?
bayt
08-07-23 12:44
想问个问题,每被攻击的时候 就会产生 0044C126 MOV [ESI + 00000008] , EAX
这个语句,单是地址是变化的,语句还是转移,这类情况怎么处理,而且如果用你的脚本注入
程序马上就死,没办法解决.
修改众
08-07-23 14:37
查看寄存器的值,然后再决定如何写脚本
参考早期rol ct
查看完整版本: [--
[CE教程]游戏修改_动态地址的静态化
--] [--
top
--]
Powered by
PHPWind
v5.3
Code © 2003-05
PHPWind
Time 0.113722 second(s),query:4 Gzip enabled
You can
contact us