关于写入数据到内存的一个问题(弄修改器ing…)
偶用ReadProcessMemory和WriteProcessMemory弄一个修改器时,遇到了一个数值写入内存的问题,不知道是为什么,各位如果遇到过的话可以分享一下解决方法么?前提:声明无误,已经打开游戏进程并获得最大读写权限,读取和写入内存已经成功。问题就出在直接写一个数值到指定的一级基址上。
在之前,(基址+多级偏移)的情况下是已经实现写入成功的,但直接写到一个基址上就写不进了。
例如把文本框内的数值转换成单浮点后写入基址4BB70C中去:
WriteProcessMemory hProcess, &H4BB70C, CSng(Textx(1).Text), 4, 0
结果就发现是写不进去,我用Cheat Engine试过是能修改的,用VB是能直接读出地址中的值,但就是写不进去数值,非常不解啊。
之前的(基址+多级偏移)是调用一个子程序完成写入的。
Private Function NCwriteS(PY1 As Long, PY2 As Long, x As Single)
Dim edx As Long
ReadProcessMemory hProcess, ByVal &H4DC270, edx, 4, 0
'4DC270是基址,读出里面的指针
ReadProcessMemory hProcess, ByVal edx + &H2A6A4, edx, 4, 0
'再加上第一级偏移量,读出目标指针
ReadProcessMemory hProcess, ByVal edx + PY1, edx, 4, 0
'再加上第二级偏移量,读出目标指针
WriteProcessMemory hProcess, ByVal edx + PY2, x, 4, 0
'再加上第三级偏移量,对目标地址写入数据
End Function
对于这个也没发生写不进的问题,得出最终地址后直接写入也没问题。
就是直接写一个基址的时候就写不进了……囧
5555知道何解的请帮帮忙啊~