1

使用したいネイティブ ライブラリには、次のようなメソッドがあります。

extern unsigned long write(void);

ただし、何を書き込むかは、いくつかのグローバル変数で定義する必要があります。

short int Addr; //the starting address it write to;
short int Length; //the length of the writing;
void * data; //the data it will write;

私はJNAで知っています.NativeLibrayには、ネイティブライブラリで定義されたグローバル参照をロードするメソッドがありますが、ここで必要なものではないようです. write() メソッドが正しく機能するように、実際には上記のグローバル変数を宣言してそれらに書き込む必要があります。

JNAでこれを実装する方法について何か提案はありますか?

ありがとう。

4

2 に答える 2

1

非常に多くのゲームハッカーは、汚い詳細に入るのを嫌がります。

NativeLibrary共有ライブラリによってエクスポートされたグローバル変数のアドレスへのアクセスを提供します。

NativeLibrary lib = NativeLibray.getInstance("mylib");
Pointer paddr = lib.getGlobalVariableAddress("Addr");
paddr.setInt(0, 1234);
于 2013-04-18T12:40:37.087 に答える
0

Java/JNA 経由で呼び出すことができる別のメソッドで「書き込み」メソッドをラップしてみませんか。そこでは、最初にこれらのグローバル変数を設定してから、実際の変数を呼び出します。

于 2013-04-18T06:10:41.810 に答える