mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 02:09:44 +02:00
GP-1044 Fixed promotion of namespaces to only verified classes and added creation of typeinfo structs in stripped gcc binaries
This commit is contained in:
parent
cde02a91eb
commit
020df708e2
5 changed files with 503 additions and 191 deletions
|
@ -163,6 +163,11 @@ public class RecoverClassesFromRTTIScript extends GhidraScript {
|
|||
}
|
||||
else if (isGcc()) {
|
||||
|
||||
boolean runGcc = askYesNo("GCC Class Recovery Still Under Development",
|
||||
"I understand that gcc class recovery is still under development and my results will be incomplete but want to run this anyway.");
|
||||
if (!runGcc) {
|
||||
return;
|
||||
}
|
||||
nameVfunctions = true;
|
||||
recoverClassesFromRTTI = new RTTIGccClassRecoverer(currentProgram, currentLocation,
|
||||
state.getTool(), this, BOOKMARK_FOUND_FUNCTIONS,
|
||||
|
@ -545,25 +550,6 @@ public class RecoverClassesFromRTTIScript extends GhidraScript {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//TODO: call this before create data in debug mode from script
|
||||
private void findClassesWithErrors(List<RecoveredClass> recoveredClasses)
|
||||
throws CancelledException {
|
||||
|
||||
Iterator<RecoveredClass> iterator = recoveredClasses.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
monitor.checkCanceled();
|
||||
RecoveredClass recoveredClass = iterator.next();
|
||||
if (hasConstructorDestructorDiscrepancy(recoveredClass)) {
|
||||
println(recoveredClass.getName() + " has function on both c and d lists");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Method to analyze the program changes with the decompiler parameter ID analyzer
|
||||
* @param set the set of addresses to analyze
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue