2

ファイルをメモリにロードする方法は知っていますが、Java ではメモリ アドレスに構造を定義するにはどうすればよいですか?

私がやろうとしているのは、PE (PORTABLE EXECUTABLE)ファイル ヘッダーを解析することです。外部ライブラリなしでそれを行うにはどうすればよいですか。

ありがとう。

4

3 に答える 3

1

PEファイルを読み取ろうとしていることを理解しているが、ファイルの機械可読な定義がない場合。Javaでは、任意のメモリにマップするだけのクラスを実際に作成することはできないため、ヘッダー内のデータのオフセットとサイズを使用して一連の定数を作成する必要があります。そして、これらの定数を使用して、必要なものに対応する正しいバイトを返すクラスを作成できます。

于 2012-05-20T19:43:47.173 に答える
1

これをチェックしてください https://code.google.com/p/jpexe/source/browse/src/com/google/code/jpexe/PEFile.java?spec=svn2a73c57c6e5532365ce12126efa7e902e4c759db&r=c674a40f25833836de99644ff7583e8c9c7d3dc6

このソースは google project で見つけました。私はまだこれを試していません。これが役立つことを願っています。ここで共有するより良い解決策があれば、私も同じ解決策を探しています。

于 2013-03-17T14:43:58.453 に答える
0

dorkbox PeParser を試す:<a href="https://github.com/dorkbox/PeParser" rel="nofollow noreferrer">https://github.com/dorkbox/PeParser

PE pe = new PE("C:\\my.exe");
System.out.println(pe.isPE());
System.out.println(pe.getInfo());
于 2016-12-09T03:07:49.143 に答える