Skip to content
Karsten Hahn edited this page Feb 11, 2023 · 6 revisions

Print debug section information:

File file = new File("sample.exe");
String report = ReportCreator.newInstance(file).debugReport();
System.out.println(report);

Read codeview info:

CodeviewInfo codeView = data.loadCodeViewInfo().get();
byte[] guid = codeView.guid();
String path = codeView.filePath();
long age = codeView.age();

Read only debug path:

String debugPath = data.loadPDBPath();

Get specific debug directory values of a specific type (here Codeview):

PEData data = PELoader.loadPE(file);
SectionLoader loader = new SectionLoader(data);
DebugSection debugSection = loader.loadDebugSection();
Stream<DebugDirectoryEntry> debugStream = debugSection.getEntries().stream();
DebugDirectoryEntry codeViewEntry = debugStream.filter(d -> d.getDebugType() == DebugType.CODEVIEW).findFirst().get();
Long address = codeViewEntry.get(DebugDirectoryKey.ADDR_OF_RAW_DATA);
Long size = codeViewEntry.get(DebugDirectoryKey.SIZE_OF_DATA);
String type = codeViewEntry.getTypeDescription();
Date stamp = codeViewEntry.getTimeDateStamp();
Clone this wiki locally