GP-1832 improved isGcc checks in RecoverClassesFromRTTI script.

This commit is contained in:
ghidra007 2022-03-18 13:39:41 +00:00
parent 7daa822523
commit 1ae9218eba
2 changed files with 6 additions and 7 deletions

View file

@ -69,6 +69,7 @@ import ghidra.app.util.bin.format.dwarf4.next.sectionprovider.DWARFSectionProvid
import ghidra.app.util.bin.format.dwarf4.next.sectionprovider.DWARFSectionProviderFactory;
import ghidra.app.util.bin.format.pdb.PdbParserConstants;
import ghidra.app.util.importer.MessageLog;
import ghidra.app.util.opinion.ElfLoader;
import ghidra.framework.options.Options;
import ghidra.framework.plugintool.PluginTool;
import ghidra.program.model.address.*;
@ -574,8 +575,7 @@ public class RecoverClassesFromRTTIScript extends GhidraScript {
*/
private boolean isGcc() {
boolean isELF = currentProgram.getExecutableFormat().contains("ELF");
if (!isELF) {
if (!ElfLoader.ELF_NAME.equals(currentProgram.getExecutableFormat())) {
return false;
}
@ -591,11 +591,10 @@ public class RecoverClassesFromRTTIScript extends GhidraScript {
return false;
}
if (!commentBlock.isLoaded()) {
if (!commentBlock.isInitialized()) {
return false;
}
// check memory bytes in block for GCC: bytes
byte[] gccBytes = { (byte) 0x47, (byte) 0x43, (byte) 0x43, (byte) 0x3a };
byte[] maskBytes = { (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff };

View file

@ -21,6 +21,7 @@ import java.util.*;
import ghidra.app.cmd.label.DemanglerCmd;
import ghidra.app.util.NamespaceUtils;
import ghidra.app.util.demangler.*;
import ghidra.app.util.opinion.ElfLoader;
import ghidra.framework.plugintool.PluginTool;
import ghidra.program.flatapi.FlatProgramAPI;
import ghidra.program.model.address.*;
@ -133,8 +134,7 @@ public class RTTIGccClassRecoverer extends RTTIClassRecoverer {
private boolean isGcc() {
boolean isELF = program.getExecutableFormat().contains("ELF");
if (!isELF) {
if (!ElfLoader.ELF_NAME.equals(program.getExecutableFormat())) {
return false;
}
@ -149,7 +149,7 @@ public class RTTIGccClassRecoverer extends RTTIClassRecoverer {
return false;
}
if (!commentBlock.isLoaded()) {
if (!commentBlock.isInitialized()) {
return false;
}