mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-16 19:28:14 +08:00
Merge remote-tracking branch
'origin/GP-1851_ghidra007_PR-4514_xiaoyinl_patch-3' (Closes #4906, Closes #2208)
This commit is contained in:
@@ -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;
|
||||
|
||||
+11
-1
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user