|
楼主 |
发表于 2024-7-25 23:29:01
|
显示全部楼层
广西壮族自治区柳州市
有人问,DLL模板中的子程序_CALL 怎么使用
假如,DLL注入游戏进程,就可以用这个子程序去CALL游戏内的函数
每一个参数就是CALL地址,
第二个参数 Ecx 专门针对this调用约定,如果是stdcall和cdecl的话无视这个参数,随便给个数值就行,可以是0
后面是需要调用的CALL的参数
比如下面这个CALL
push 4
push 3
push 2
push 1
mov ecx,[0x123456]
call 0x123ABCD
这个CALL需要设ECX的值,说明是this约定,用_CALL调用就是
Ecx = 指针到整数(十六进制("123456"))
返回值 = _CALL(十六进制("123ABCD"), Ecx,1,2,3,4)
push 参数时顺序反的,第一个push的是最后一个参数,最后一个push才是第一个参数
又比如,某个游戏寻路CALL的某个参数是个结构体,里面存的是xyz坐标怎么传呢,
一般游戏坐标类型为小数,可以定义一个小数型数组,3个成员
成员[1] = x
成员[2] = y
成员[3] = z 这只是个例子,不一定是XYZ顺序
然后传参时可以用 取变量指针_小数型(成员[1])这样就等于给参数传了一个结构体
还有,DLL注入游戏进程后,一切内存读写操作可以用
指针到整数
指针到文本
指针到字节集
写到内存
这些基本核心支持库指令,不要再用什么内存读写模块的夸进程读写方法,注入后是对本进程操作,不是夸进程操作
有人把DLL注入游戏进程后还要在DLL里创建大漠读写内存,我也很无语
|
|