Java JNA编写内存布尔值

时间:2015-12-15 04:20:56

标签: java jna

我正在攻击游戏并且我使用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 ++中,我可以使用模板 - 比如做这样的事情

template <class T>
void Write(DWORD addr, T val) {
    WriteProcessMemory(_process, (LPVOID)addr, &val, sizeof(T), NULL);
}

1 个答案:

答案 0 :(得分:0)

内存由字节组成。如果你想写更多的东西&#34;高级&#34; (例如布尔值)您需要考虑如何将其表示为字节并以这种方式对其进行编码。如果你正在攻击游戏,那么你在这里的设计选择仅限于游戏认为布尔应该在内存中的样子。