mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-31 19:28:34 +08:00
Merge branch 'GP-4291_ghidra1_PR-5784_astrelsky_ElfParseDynamicHeader'
(Closes #5784)
This commit is contained in:
@@ -702,15 +702,17 @@ public class ElfHeader implements StructConverter {
|
||||
}
|
||||
|
||||
ElfProgramHeader loadHeader = getProgramLoadHeaderContaining(vaddr);
|
||||
if (loadHeader != null) {
|
||||
long dynamicTableOffset = loadHeader.getOffset() +
|
||||
(dynamicHeaders[0].getVirtualAddress() - loadHeader.getVirtualAddress());
|
||||
dynamicTable = new ElfDynamicTable(reader, this, dynamicTableOffset,
|
||||
dynamicHeaders[0].getVirtualAddress());
|
||||
return;
|
||||
if (loadHeader == null) {
|
||||
// Assume p_offset can be used reliably if no corresponding PT_LOAD
|
||||
loadHeader = dynamicHeaders[0];
|
||||
}
|
||||
long dynamicTableOffset = loadHeader.getOffset() +
|
||||
(dynamicHeaders[0].getVirtualAddress() - loadHeader.getVirtualAddress());
|
||||
dynamicTable = new ElfDynamicTable(reader, this, dynamicTableOffset,
|
||||
dynamicHeaders[0].getVirtualAddress());
|
||||
return;
|
||||
}
|
||||
else if (dynamicHeaders.length > 1) {
|
||||
if (dynamicHeaders.length > 1) {
|
||||
errorConsumer.accept("Multiple ELF Dynamic table program headers found");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user