JNI レベルで JVM クラスをダンプする Windows 用のプロキシ DLL。
一部の Java プログラムは、リフレクションを使用して、クラスを動的にロードして実行することでコードを非表示にします。これらをメモリからダンプすることはできますが、実行直後にアンロードされた場合はどうなるでしょうか? rt.jar
編集して、さまざまなリフレクション メソッドにフックを配置できます。しかし、プログラムがバイトコード レベルのフックをバイパスして、ネイティブ クラス ロード メソッドを直接使用している場合はどうなるでしょうか?
このプロジェクトは、ダンピングのあらゆるニーズに対する普遍的な解決策となることを目指しています。確実にアクセスできる最低の JNI レベルでフックすると、ロード中のすべてのクラスがダンプされます。
DefineClass*
のみをフックします。 JNI に独自のクラス ローダーを実装することで、このメソッドをバイパスすることができます。 最新リリースをダウンロードします。 version.dll
Java bin
ディレクトリのjava.exe
の隣に配置します。すべてのプロセスに影響を与えないように、別の Java インストールを使用することもできます。デスクトップに、 JVMDUMP
という新しいディレクトリを作成します。
変更された Java インストールでプログラムを実行すると、フック結果を示すメッセージ ボックスが表示されます。 OK
押すと、ロードされたすべてのクラスがデスクトップ上のディレクトリに保存されます。
Error 2
発生しますJVMDUMP
にはデスクトップからアクセスできませんJVM に簡単かつ確実に挿入するためのシンプルなプロキシ DLL 実装。詳細については、参考資料を確認してください。
メソッドをコードにリダイレクトするフックをインストールします。ムフックによって提供されます。
クラスダンプロジック。
高速でシンプルな Java クラス パーサー。フックされた各バイト バッファのクラス名を解析し、それを使用してファイルを適切な名前で保存します。