Merge remote-tracking branch

'origin/GP-1851_ghidra007_PR-4514_xiaoyinl_patch-3' (Closes #4906,
Closes #2208)
This commit is contained in:
Ryan Kurtz
2023-02-25 07:28:12 -05:00
2 changed files with 12 additions and 9 deletions
@@ -1054,14 +1054,7 @@ public class PeLoader extends AbstractPeDebugLoader {
// return compilerType;
// }
// Now look for offset to code (0x1000 for gcc) and PointerToSymbols
// (0 for VS, non-zero for gcc)
int addrCode = br.readInt(dh.e_lfanew() + 40);
if (addrCode != 0x1000) {
compilerType = CompilerEnum.VisualStudio;
return compilerType;
}
// Now look for PointerToSymbols (0 for VS, non-zero for gcc)
int ptrSymTable = br.readInt(dh.e_lfanew() + 12);
if (ptrSymTable != 0) {
compilerType = CompilerEnum.GCC;
@@ -19,7 +19,12 @@ import java.io.File;
import java.io.IOException;
import generic.jar.ResourceFile;
import ghidra.app.util.demangler.*;
import ghidra.app.util.demangler.DemangledAddressTable;
import ghidra.app.util.demangler.DemangledException;
import ghidra.app.util.demangler.DemangledFunction;
import ghidra.app.util.demangler.DemangledObject;
import ghidra.app.util.demangler.Demangler;
import ghidra.app.util.demangler.DemanglerOptions;
import ghidra.app.util.opinion.ElfLoader;
import ghidra.app.util.opinion.MachoLoader;
import ghidra.framework.Application;
@@ -50,6 +55,11 @@ public class GnuDemangler implements Demangler {
if (isELF(executableFormat) || isMacho(executableFormat)) {
return true;
}
String compiler = program.getCompiler();
if(compiler != null && compiler.contains("gcc")) {
return true;
}
CompilerSpec spec = program.getCompilerSpec();
String specId = spec.getCompilerSpecID().getIdAsString();