0

我正在使用 JNA 编写一个 Java 程序,它应该将自己附加到另一个进程并调用该进程内存空间内各个地址的函数。

我已将 JNA 设置为依赖项以及作为 JNA 项目一部分的平台贡献,但是我注意到在 Kernel32 类中没有映射到VirtualAllocExWriteProcessMemory和其他一些。我相信这项任务需要这些功能,但也许有更好的方法,或者它们已在其他地方实现。

有没有办法使用win32平台contrib来做到这一点?如果是这样我应该在哪里看?如果没有,还有其他选择,还是我必须自己从 Kernel32 映射这些功能?

4

1 回答 1

1

要扩展现有的库映射,只需扩展接口并生成一个新实例:

public interface MyLibrary extends OriginalLibrary {
    MyLibrary INSTANCE = (MyLibrary)Native.loadLibrary("name"[, options]);
    void extensionFunction();
}

您现在拥有一个包含所有原始内容以及您的方法的库映射。请注意,在扩展 w32 API 映射时,您应该传入相同的选项(通常W32API_DEFAULT_OPTIONS);有关详细信息,请参阅相应的库映射调用Native.loadLibrary()

于 2013-07-26T19:06:53.407 回答