Java JNA写入内存布尔值 [英] Java JNA writing memory boolean

查看:141
本文介绍了Java JNA写入内存布尔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在入侵游戏,并且正在使用Java JNA向游戏写入内存,我只能写字节数组,但我也需要写booleans(如果这很有意义).这就是我的写方法

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

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 ++中,我可以使用模板作这样的事情

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

推荐答案

内存由字节组成.如果要编写更高级"的内容(例如布尔值),则需要考虑如何将其表示为字节并以这种方式进行编码.如果您是黑客游戏,则此处的设计选择仅限于游戏认为布尔值在内存中的外观.

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.

这篇关于Java JNA写入内存布尔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆