Commit graph

67 commits

Author SHA1 Message Date
ghidra007
1ae9218eba GP-1832 improved isGcc checks in RecoverClassesFromRTTI script. 2022-03-18 13:39:41 +00:00
ghidra1
f2706bb1de Merge remote-tracking branch
'origin/GP-1670_ghidra007_RecoveredClass_ReplaceInStructureBug--SQUASHED'
into patch

Conflicts:
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIGccClassRecoverer.java
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java
2022-01-24 17:07:32 -05:00
ghidra007
87d6ff4db3 GP-1670 Fixed bug in a class recovery helper class that in some cases was causing an exception when trying to replace a component in a structure. 2022-01-24 21:34:12 +00:00
ghidra1
c56961f06b Merge remote-tracking branch 'origin/GP-1601_ghidra007_ApplyClassFunctionDef_fixPureVirtualCase--SQUASHED' into patch 2022-01-24 16:20:29 -05:00
ghidra007
eeee6c1ba4 GP-1601 Fixed the ApplyClassFunctionDefinitionUpdatesScript and the ApplyClassFunctionSignatureUpdatesScript and related methods in RecoveredClassHelper to work with new 10.1 function definition changes. 2022-01-24 21:02:03 +00:00
ghidra007
19ace220cf GP-1686 updated gcc class recovery to only allow typeinfo structs in non-executable blocks. 2022-01-21 18:15:45 +00:00
ghidra1
c0a81f9c8e Merge remote-tracking branch 'origin/GP-1671_ghidra007_RecoveredClass_FixSetLabel_InvalidChars' into patch 2022-01-14 19:19:52 -05:00
ghidra007
34efbc5f1c GP-1671 fixed space typo in createShortenedTemplateNames causing
symbol.setName stack trace.
2022-01-12 17:11:43 +00:00
ghidra007
0c1c7d1acf GP-1663 The RecoverClassesForRTTIScript was updated to improve function definition creation for the multi-inheritance and single virtual inheritance cases. 2022-01-11 18:51:06 +00:00
ghidra007
9567e2f1ea GP-1506 Refactored to put new class structure code in RecoverClassHelper then added calls to it in gcc create structure code. Plus some code refactoring and cleanup. 2021-12-03 23:06:53 +00:00
ghidra1
659892a810 Merge remote-tracking branch
'origin/GP-1519_ghirdra007_RecoverClass_replaceGetComponentA--SQUASHED'
into Ghidra_10.1

Conflicts:
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/ExtraScriptUtils.java
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIGccClassRecoverer.java
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIWindowsClassRecoverer.java
2021-11-29 22:35:26 -05:00
ghidra007
2aefe6a15d GP-1519 Changed getComponentAt to getComponentContaining in a breaking EditStructureUtils method and a couple other places. Various refactoring to clean up code. 2021-11-30 01:38:13 +00:00
ghidra007
80538d8c49 GP-1499 Recover classes script various improvements. Updated checks for whether program has DWARF and whether DWARF has been applied so it works for old and new cases.
Improved error handling. Updated deprecated graph methods which were no longer using defined colors. Various code cleanup.
2021-11-25 19:02:53 +00:00
ghidra1
331357f203 Merge remote-tracking branch
'origin/GP-1495_ghidra007_Add_check_for_error_decompiling_functions--SQUASHED'
into Ghidra_10.1
2021-11-16 11:58:18 -05:00
ghidra007
e2257ce96a GP-1495 added check for error decompiling function and put bad bookmarks if it happens. 2021-11-16 11:48:08 -05:00
ghidra1
f22e05af3f Merge remote-tracking branch
'origin/GP-1315_add_option_to_remove_replaced_class_structures--SQUASHED'
into Ghidra_10.1 (Closes #3443)
2021-11-10 16:40:22 -05:00
ghidra007
8610e23ae0 GP-1315 Added options to allow removal of replaced class structure data types when replaced with ones created by RecoverClassesFromRTTIScript. 2021-11-10 20:01:05 +00:00
ghidra007
0766c30048 GP-1464 RecoverClassesFromRTTIScript now consistently applies its class structures in programs that have PDB information applied. Also, an option was added so users can decide whether to replace existing class data in thiscall functions regardless of whether they originated as PDB or not. 2021-11-10 19:59:21 +00:00
Ryan Kurtz
6792beee6a Merge remote-tracking branch 'origin/GP-1458_ghidra007_label_multi_parent_class_vftables--SQUASHED' 2021-11-09 10:24:58 -05:00
Ryan Kurtz
463f73caf8 Merge remote-tracking branch
'origin/GP-1311_ghidra007_remove_this_from_func_sigs_make_better_purevirt_sigs--SQUASHED'

(Closes #3417)

Conflicts:
	Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassUtils.java
2021-11-09 10:20:52 -05:00
ghidra007
a4349ba443 GP-1311 In RecoverClassesFromRTTIScript support, removed the 'this *' from vfunction definitions to enable generic class assignment and allowed purecall vfunction pointer to be replaced with pointers to correct class vfunction definition. 2021-11-09 15:02:03 +00:00
ghidra007
eb10067c0a GP-1458 Updated RecoverClassesFromRTTI to label multi parent vftables with parent name in Windows programs. 2021-11-09 14:58:34 +00:00
ghidra007
a8e39d58c4 GP-1408 Changed inheriting class structures to contain individual base class structure components instead of whole structures. This allows correct class vftable and vbtable pointers to be used instead of base class ones. This makes structures messier but makes decompiler usage correct. Also updated methods that update virtual functions. 2021-11-09 14:56:19 +00:00
ghidravore
a8da2b761a GP-1073 updating uses of getSymbols(address) to be more efficient where possible 2021-10-06 16:59:58 -04:00
ghidra1
877b168224 GP-943 Corrected RecoverClassesFromRTTIScriptTest4 test failure 2021-09-27 01:22:51 -04:00
ghidra1
27892f659a GP-943 Resurected and revised Structure.getComponentAt method. Also
revised behavior of Structure.getComponentContaining.  Both will now
ignore zero-length components.
2021-09-26 19:11:34 -04:00
ghidra1
cfdec26da4 GP-943 Added support for zero-length arrays and
zero-length components.  NOTE: We still never return 0 for
DataType.getLength().  Added DataType.isZeroLength().
2021-09-24 16:29:29 -04:00
ghidravore
269ca50d33 fixed a few minor issues with AST graphs 2021-08-10 14:37:18 -04:00
Ryan Kurtz
69e8119211 Merge remote-tracking branch 'origin/GP-773_ghidravore_graph_visualization_options--SQUASHED' 2021-08-09 14:13:19 -04:00
ghidravore
210cc0bca0 Created the concept of graph types and display options for those graph types. 2021-08-09 13:18:23 -04:00
ghidra007
6d5f30f448 GP-1055 Improvements to prototype RecoverClassesFromRTTIScript for stripped gcc binaries including improved finding and creating of virtual tables, some constructor/destructor determination, and improved class data creation. 2021-07-30 18:50:08 -04:00
ghidra007
4b714c312b Fixed RecoverClass test failures caused by leaving graph flag on. 2021-07-07 16:30:31 +00:00
ghidra1
357500306e Merge remote-tracking branch 'origin/GP-1095_ghidra007_GraphRecoveredClassesImprovements--SQUASHED' into patch 2021-07-06 19:08:22 -04:00
ghidra007
90c517fcf9 GP-1095 Fixed duplicate name graph issues in RecoverClassesFromRTTIScript and GraphClassesScript. Fixed class name parsing flaws in GraphClassesScript. 2021-07-06 18:56:18 -04:00
ghidra1
79b9e9a6ec GP-1101 Improved javadoc for PdbParserConstants and updated script to
use them
2021-07-06 15:09:06 -04:00
ghidra007
b8e8c094a1 GP-1101 Added missing isPDBLoaded flag assignment to the RTTIWindowsClassRecoverer which was inadvertently left out during refactoring. 2021-07-06 14:35:02 -04:00
ghidra007
020df708e2 GP-1044 Fixed promotion of namespaces to only verified classes and added creation of typeinfo structs in stripped gcc binaries 2021-06-16 14:59:01 -04:00
ghidra007
e1953ebb22 GP-972 Improvements to Gcc RTTI Class Recovery 2021-06-10 14:19:33 -04:00
ghidra007
b6a5ce659b GP-973 Added ApplyClassFunctionSignatureUpdatesScript and ApplyClassFunctionDefinitionUpdatesScript fix-up scripts for when users update RecoveredClass virtual function signatures or definitions. 2021-06-09 17:08:44 -04:00
ghidra007
224f15b20a GP-971 Moved ClassRecovery class files to subpackage so they would not appear in script manager window. 2021-05-19 14:24:59 -04:00
ghidra1
8d9f4b5257 Merge remote-tracking branch
'origin/GP-339_ghidra007_RecoverClassesFromRTTI--SQUASHED'
2021-05-18 19:04:27 -04:00
ghidra007
3d052cde11 GP-339 Added RecoverClassesFromRTTI script and related classes. 2021-05-18 18:53:05 -04:00
caheckman
a5d4ca3cab Program specific, user-defined, cspec extensions
Documentation for spec extensions

Handle extensions with parse errors
Export button for spec extensions
Pop-up dialog for parse errors in user-defined specification extensions
GP-653 corrected some minor issues and established new ProgramDB version
make incremental initialization constructor for AddressSized private
Make AddressSized fields private
More adjustments to AddressSized
Review fixes for BasicCompilerSpec
Take restoreXml out of DataOrganization interface
Remove restoreXml from BitFieldPacking interface
More review fixes
Prevent callotherfixup extension with non-existent target
Suggested export name
More documentation for SpecExtension
Support for undo/redo with spec extensions
Documentation for ConstructTpl
Split out ProgramCompilerSpec and other changes for review
Changes after next round of reviews
2021-05-04 12:11:55 -04:00
ghidra1
a40370ab7a Revert "Merge remote-tracking branch 'origin/GP-653_UserDefinedCspec--SQUASHED'" 2021-04-30 10:34:54 -04:00
caheckman
ed82c2cb34 GP-653 added support for user-defined compiler spec extensions 2021-04-29 16:17:25 -04:00
ghidra1
0f4026c682 Merge remote-tracking branch
'origin/GP-625-tomnelson-full-fix-1.2-SNAPSHOT...'
2021-03-03 13:07:32 -05:00
dragonmacher
76b66e2a53 added javadoc and improved root predicate for loop vertices. changed CIRCLE symbol name
GP-625 updated module IP for jungrapht 1.2
missing comma
changed jungrapht version to 1.2
changed favored edge and comparator
rename for updates to exp layouts
updates for graph display api generalization
renamed exp layout
added placeholders for exp layouts
removed problematic changes to layouts
allow edge selection to be enabled. Begin to organize default graph api symbols in GraphDisplay
updates
full fix for GP-625
2021-03-03 09:22:36 -05:00
ghidra1
f94fb42da8 Merge remote-tracking branch 'origin/GP-731_ryanmkurtz_PR-2324_njfox_refactor_fix-variable-name' 2021-02-26 18:26:43 -05:00
dragonmacher
d4302549e3 GP-676 - Tweak to the TableChooserDialog API to always use a transaction 2021-02-10 20:35:55 -05:00
dragonmacher
83e6e614a5 GP-676 - Updated TableChooserDialog API to allow for bulk transaction
usage
2021-02-09 17:49:37 -05:00