【发布时间】:2015-12-15 13:16:58
【问题描述】:
我正在破解一个游戏,我正在使用 Java JNA 将内存写入游戏,我只能写入字节数组,但我也需要写入 booleans(如果这有意义的话)。所以这是我的写方法
VKernel32.java
public abstract boolean WriteProcessMemory(Pointer paramPointer1, long paramLong, Pointer paramPointer2, int paramInt, IntByReference paramIntByReference);
实际记忆写作:
public void writeMemory(int address, byte[] data) {
int size = data.length;
Memory toWrite = new Memory(size);
for (int i = 0; i < size; i++) {
toWrite.setByte(i, data[i]);
}
kernel32.WriteProcessMemory(process, address, toWrite, size, null);
}
在 C++ 中,我可以使用模板 for-say 来做这样的事情
template <class T>
void Write(DWORD addr, T val) {
WriteProcessMemory(_process, (LPVOID)addr, &val, sizeof(T), NULL);
}
【问题讨论】: