在Java中解析PE头

时间:2012-05-20 19:28:44

标签: java

我知道如何在内存中加载文件但在java中如何定义内存地址的结构?

我要做的是解析PE (PORTABLE EXECUTABLE)文件头。如果没有外部库,我怎么能这样做。

感谢。

3 个答案:

答案 0 :(得分:1)

如果我理解你想要的东西,你试图读取PE文件,但是你没有任何机器可读的文件定义。在Java中,你实际上没有一个只映射到任意内存的类,所以你必须在头文件中创建一堆具有数据偏移量和大小的常量。然后你可以创建一些将使用这些常量的类来返回与你想要的对应的正确字节。

答案 1 :(得分:1)

查看https://code.google.com/p/jpexe/source/browse/src/com/google/code/jpexe/PEFile.java?spec=svn2a73c57c6e5532365ce12126efa7e902e4c759db&r=c674a40f25833836de99644ff7583e8c9c7d3dc6

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

答案 2 :(得分:0)

尝试使用dorkbox PeParser:https://github.com/dorkbox/PeParser

PE pe = new PE("C:\\my.exe");
System.out.println(pe.isPE());
System.out.println(pe.getInfo());