Java JNA 写入内存 boolean 值

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

最佳答案

内存由字节组成。如果您想编写更“高级”的东西(例如 boolean 值),您需要考虑如何将其表示为字节并以这种方式进行编码。如果您正在破解游戏,那么您在此处的设计选择仅限于游戏认为 boolean 值在内存中的样子。

关于Java JNA 写入内存 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34281064/

相关文章:

java - 使用 Prosody Speech API 检测静音

java - 从 Sun 应用程序服务器中删除 server.policy

java - 尝试使用三个数组Java获得三列数据

java - 如何从指向该数组的指针(在 JNA 中)提取 `struct*` 的数组?

使用 JNA 调用 Win32 WaitForSingleObject() 时,Java 计时器不运行

java - 学习 Java Native Access 时出现 com.sun.glass.ui 包错误

java - 如何使用 Chrome 访问我现有的 cookie?

java - Tomcat 部署文件路径(用于 Java I/O 进程)

java - 用Java模拟低精度硬件

java - JNA 数组和指针