Emerson Pinter
cab8ed6068
feat: cache vfunctions list
...
The vfunctions are collected and compared in two loops against all the
recoveredClasses, this takes time if the binary have many classes. This
commit makes the vfunctions list and the vftable address to be stored
in a map, making the vfunctions list and create happen only once.
2024-08-19 23:13:23 -03:00
ghidra007
12fcbe63bc
GP-4812 update vfunctions to use void* this instead of formal signature
2024-08-02 20:39:03 +00:00
ghidra007
f657b11c1d
GP-4748 Updated RttiUtil's find end of vftable to be more accurate.
2024-07-19 21:48:15 +00:00
Ryan Kurtz
2760eebc92
Merge remote-tracking branch 'origin/patch'
2024-07-17 13:27:11 -04:00
ghidra007
c2bf8d0464
GP-4763 Added check that ClassHierarchyDescriptor symbols are not in Global namespace. If they are skip processing it and the associated class.
2024-07-17 16:44:40 +00:00
ghidra007
02aba11104
GP-4708 updated createStructure to fix logic error.
2024-06-24 23:11:26 +00:00
caheckman
184c657cfd
GP-4708 Adjustments to RecoverClassesFromRTTIScript and
...
FillOutStructureHelper
2024-06-24 23:11:26 +00:00
ghidra007
78425f441d
GP-4586 corrected and simplified method to generate class description to
...
fix order of parents.
2024-05-08 22:39:41 +00:00
Ryan Kurtz
fef0b92cad
Merge remote-tracking branch 'origin/GP-4396_ghidra007_RTTI_gcc_handle_copy_relocations_nonMangledClassNames'
2024-04-05 08:55:56 -04:00
ghidra007
b04d5335ca
GP-4376 Updated gcc class recovery to allow for special typeinfos that
...
are not in program memory or external block. Also updated to add a check
for unhandled relocations. Also updated to allow for non-mangled
typeinfo-name strings.
2024-04-04 16:46:02 +00:00
Ryan Kurtz
4360104a9e
Merge remote-tracking branch 'origin/patch'
...
Conflicts:
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIWindowsClassRecoverer.java
2024-04-04 08:29:23 -04:00
ghidra007
cd780a7b63
GP-4459 put back parentList check
2024-04-03 18:25:23 +00:00
ghidra1
624a3c4e9e
GP-4408 Refactor of FillOutStructureCmd. Added FillOutStructureHelper and additional DecompilerUtils methods.
2024-04-03 09:53:53 -04:00
ghidra007
f0f2ffc97e
GP-4459 fixed review notes
2024-04-01 20:14:57 +00:00
Ryan Kurtz
740f8251ae
GP-4459 removed unnecessary restrictive check which was causing a later
...
null exception. Also, added null check in later place.
2024-03-26 18:31:21 +00:00
Ryan Kurtz
6cd4fd80f7
Merge remote-tracking branch 'origin/GP-3868_ghidra007_RTTIscript_FixExtFuncAddressLabelError' into Ghidra_10.4
2023-09-22 14:04:58 -04:00
ghidra007
81ad8d3043
GP-3868 rtti script - added code to skip external function editing
2023-09-22 17:52:35 +00:00
ghidra007
cb410f732c
GP-3861 added exceptions if missing expected windows rtti info
2023-09-22 16:35:41 +00:00
ghidra007
4076cb9ec9
GP-3777 added code to RTTI script to update any class functions not already using new class struct to use it.
2023-08-30 16:22:54 +00:00
ghidra007
5709ca80d3
GP-3464 Improved gcc rtti script class struct recovery to better use dwarf info, split out parent struct in class struct, fix align issue keeping data from being created correctly, better id and name vftables in multi-inheritance case, clean up of exceptions, start of improved modeling vftables.
2023-08-29 23:07:18 +00:00
ghidra007
45eb6eb187
GP-3747 PR-5644 reworked updateFunctionDefinition part of PR.
2023-08-21 19:47:55 +00:00
saruman9
152b6349b0
fix(rtti): fix some problems in ApplyClassFunctionSignatureUpdatesScript.java
...
Don't create List from null, check the fact that the Symbol of `vftable` is not null, change the signature of a function in any case.
2023-08-07 13:22:44 +04:00
ghidra007
84705bb8fb
GP-3674 updated RTTI script to work in headless mode.
2023-07-31 18:55:59 +00:00
ghidragon
04fa097f58
GP-3667 Cleaning up weird behavior of GraphDisplayOptions to register options when given a tool
2023-07-25 12:26:07 -04:00
Ryan Kurtz
6b2bd61588
Merge remote-tracking branch 'origin/GP-3463_ghidra007_rtti_script_improve_find_internal_vtables--SQUASHED' into patch
2023-06-09 11:14:46 -04:00
ghidra007
0f66077ce2
GP-3463 RecoverClassesFromRTTIScript - improved finding of special vtables to account for ones in memory blocks that do not contain real bytes.
2023-06-09 15:09:00 +00:00
ghidra007
ec8d9f018b
GP-3841 rtti script - fixed increment issue caused when fixing
...
incrementer
2023-06-06 22:34:57 +00:00
ghidra007
4c7be8be0d
GP-3481 added missing incrementer causing infinite loop in some cases
2023-06-05 17:15:47 +00:00
Ryan Kurtz
ea5b5e4c28
Merge remote-tracking branch 'origin/GP-3481_ghidra007_' into patch
2023-06-01 06:10:12 -04:00
ghidra007
ecade19183
GP-3467 rtti script fixed issue clearing/creating mangled typeinfo-name mangled string of correct length. Was breaking when more than one existing dt in string range because was only clearing first one.
2023-05-31 18:01:55 +00:00
ghidra007
81ba94a3b8
GP-3481 Fixed incorrect checks of getData and getDataContaining in rtti script and replaced api versions with non-api versions and updated checks to work with new way.
2023-05-31 15:54:12 +00:00
ghidra1
0b884e5bd8
Merge remote-tracking branch 'origin/GP-3406_ghidra007_add_mingw_not_fix_check_to_RTTI_script--SQUASHED' into Ghidra_10.3
2023-05-09 13:42:54 -04:00
ghidra007
8aa5ac7c47
GP-3406 RTTI script - added check that mingw analyzer fixed relocations correctly.
2023-05-09 13:41:26 -04:00
ghidra007
8580baddc3
GP-3417 fixed case where si vtable was not getting created bc too many refs. Added secondary check. Added check for same num special vtable and typeinfos.
2023-05-08 21:11:53 +00:00
Ryan Kurtz
7fa3389119
GP-2974: Fixing warnings
2023-05-01 07:23:48 -04:00
ghidra007
1d14222f37
GP-2679 Gcc class recovery improvements. Created classes for Vtable,
...
Typeinfo, etc. Reworked vtable, const vtable and vtt discovery. Now
works for static gcc and for mingw/cygwin programs.
2023-04-30 22:02:37 +00:00
ghidra1
19c1e8ae5b
GP-3235 improved auto-assignment of VOID storage to void return type for
...
function
2023-04-26 12:19:26 -04:00
ghidra1
2cdaebf0c3
Merge branch 'GP-2308_1633_ghidra1_FunctionDefinitionCallingConventions'
...
(Closes #4537 , Closes #4898 , Closes #3723 , Closes #3267 )
2023-04-20 15:41:45 -04:00
ghidra1
a4776892bd
GP-1633/GP-2308 Added ProgramArchitecture to datatype managers.
...
Refactored ProjectDataTypeManager to extend StandaloneDataTypeManager.
Added actions to datatype tree to allow setting archive architecture.
Added use of storage translators when switching architectures. Allow
FunctionDefinition to accept arbitrary calling convention
names and many other misc changes.
2023-04-20 14:01:39 -04:00
ghidra007
d8cdcfb068
GP-3293 - Added RTTI Analyzer option to the program information called 'RTTI Found' and use it to determine whether to rerun and also when deciding whether to run the RTTI script.
2023-04-14 18:57:55 +00:00
ghidra1
552eb9dd61
GP-232 correct use of EXTERNAL block string
2022-12-22 14:38:02 -05:00
ghidra1
d729dd19ca
GP-2820 corrected getPossibleCalledDestructors NPE
2022-11-10 13:34:58 -05:00
ghidra007
02db970aee
GP-2075 Updated RecoverClassesFromRTTI script to fixup generic deleting destructor names into vector and scalar ones for windows programs and split into two functions when necessary.
2022-06-08 20:22:32 +00:00
ghidra007
d8396e7592
GP-1996 - code refactor to make op new and delete discovery more generic.
2022-05-26 22:12:07 +00:00
ghidra007
5d8574f9f4
GP-1962 Prevent RecoverClassFromRTTIScript from running more than once
...
on same program.
2022-05-18 13:19:33 -04:00
ghidra007
37f87c4874
GP-2010 updated to use preferred root class folder and removed code that
...
replaced other class structs
2022-05-13 22:47:22 +00:00
ghidra007
ba7b5a2dd3
GP-1947 updated class recovery script to handle shifted pointers.
2022-04-29 13:17:50 +00:00
ghidra1
8f0589a6d8
GP-1403 Improved support for auto-named typedefs. Updated create
...
typedef action from pointer to use auto-naming. Replaced old
ImageBaseOffsetDataType 32/64-bit BuiltIn types with new pointer-typedef
based implementations. Improved settings modification
restrictions. Resolved various bugs.
2022-04-15 13:12:40 -04:00
ghidra007
22d4c2069b
GP-1581 Recover classes script deleting destructor and clone discovery improvements.
2022-04-14 19:28:49 +00:00
dragonmacher
812ea4fe1e
GP-1556 - Added support for searching for structure fields by offset
2022-03-25 09:43:50 -04:00