Java JNA writing memory boolean

妖精的绣舞 提交于 2019-12-10 20:37:49

问题


I'm hacking a game and I'm using Java JNA to write memory to the game, I can only write byte arrays but I need to write booleans as well (if that makes sense). So this is my write methods

VKernel32.java

public abstract boolean WriteProcessMemory(Pointer paramPointer1, long paramLong, Pointer paramPointer2, int paramInt, IntByReference paramIntByReference);

Actual Memory Writing:

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);
}

In C++ I can use a template for-say to do something like this

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

回答1:


Memory consists of bytes. If you want to write something more "high-level" (such as a boolean) you need to think about how you want to represent that as bytes and encode it that way. If you are hacking a game, your design choices here are limited to what the game thinks a boolean should look like in memory.



来源:https://stackoverflow.com/questions/34281064/java-jna-writing-memory-boolean

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!