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

我在谷歌项目中找到了这个来源。我还没试过这个。我希望这会有用。我你有更好的解决方案在这里分享,我也在寻找相同的解决方案。

于 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 回答