|
 
|
最近很多朋友常提出关于内存读取的方法,我说一下我的做法,以供大家参考。
现在的游戏,地址一般都是浮动的,每次启动地址都不同,所以,我们要找出地址的指针,指针又有一级指针、二级指针的不同,具体怎么找指针,请看具体找内存软件的说明,这里只说在se中怎么使用。
一、直接读取内存内容
当要查找内容的内存地址不变时(这种情况太幸福了,我没碰到过),一句就能解决问题
read mem DWord $00XXXXXX a //$00XXXX 为指定地址,内容保存在变量 a 中
但我一般不这样直接使用,我会用一个函数将它包含以便方便使用,例如,地址为红,则
Function gethong()
read mem DWord $00XXXXXX result
EndFunction
这样,每次需要查询红的情况时,直接调用
set hong=gethong() //hong 为保存具体数据的变量
就可以了,不需要每次都记住具体地址
二、一级指针
假设我们找到了指针地址,例如时坐标,也找到了坐标的偏移量,分别设置为全局变量
var ptr=$00XXXXXX
var xoff=$17FFC
var yoff=$18000
var memx=0 //memx,memy保存具体的(x,y)的地址
var memy=0
在脚本初始化时,我们要做的是
var tmp=0 //定义一个临时变量
read mem DWord ptr tmp
set memx=tmp+xoff //x的地址
set memy=tmp+yoff
好了,我们已经通过指针找到了具体地址,这样,除非游戏更新,否则我们不需要每次去查找内存地址了。
为了获取坐标,设置函数
sub getxy(mx,my)
read mem DWord memx mx
read mem DWord memy my
endsub
每次需要时,只需要调用
do getxy(x,y)
就可以了
三、二级指针
其实二级指针、三级指针方法一样,通过二的方法找出下一级指针,然后依次查找,最后找出地址。
以上我在实际应用中的做法,希望能对你有所帮助。
|
-
1
评分次数
-
|
侠义道一脚本一直没用心做商业化处理,已经做了大幅度修改,以后再说吧,现在没心情。 |
|