Commit graph

17 commits

Author SHA1 Message Date
KeybadeBlox
92179ea9bd Add C symbol support to name mangling Ghida script 2026-02-17 20:19:14 -05:00
KeybadeBlox
5d22c39db6 Finish Ghidra data symbol import
Function import still remains.
2026-02-16 21:38:28 -05:00
KeybadeBlox
0922356a40 Begin Ghidra symbol import script 2026-02-16 00:21:55 -05:00
KeybadeBlox
e0c9fc4c83 Use enhanced for loops in Ghidra mangler script 2026-02-16 00:21:22 -05:00
KeybadeBlox
1e8ae0f72f Finish Ghidra symbol export script 2026-02-16 00:20:57 -05:00
KeybadeBlox
43f4d10461 Begin enhanced export Ghidra script 2026-02-14 23:02:55 -05:00
KeybadeBlox
c38d9b5628 Tiny steps towards implementing C runtime 2026-02-14 12:34:28 -05:00
KeybadeBlox
ccd2cd37a5 Defend against spurious references during mangling
Ghidra sometimes identifies random numbers as pointers, which trips up
our mangler script when it encounters them as they generally have no
type information.  We now use heuristics to ignore such references.
2026-02-13 23:43:35 -05:00
KeybadeBlox
d372c17094 Miscellaneous name mangling improvements
Improved error reporting, skipping undesirable symbols like jump tables,
skipping special symbols like intrinsics, etc.
2026-02-12 21:15:52 -05:00
KeybadeBlox
05b4da2f78 Mangle referenced symbols in mangling script
This produces correct symbol names in disassembly in objdiff.
2026-02-12 00:36:40 -05:00
KeybadeBlox
0e84f9ab1f Refine for virtual method check in mangling script
We used the flimsy heuristic of a reference from non-executable memory
to try to guess at whether a reference was a vtable, but now we just
check whether it's been named as a vtable.
2026-02-11 21:14:46 -05:00
KeybadeBlox
53b0e82417 Include headless demangling in delink.sh
This means we get delinked objects with proper mangled names matching
our recompiled files.
2026-02-11 20:23:26 -05:00
KeybadeBlox
55046bf009 Better handle undefined types in mangling script 2026-02-11 20:17:22 -05:00
KeybadeBlox
e9b0c3c6bc Complete mangler script
Now to hook it up to the delinker script.

(I totally accidentally said "demangling" in the last commit)
2026-02-11 00:46:33 -05:00
KeybadeBlox
febf9fc172 Finish function demangling
Data demangling should be much easier.
2026-02-10 00:06:29 -05:00
KeybadeBlox
576a60d331 Mostly finish function name mangling
Still need to do function pointers.
2026-02-07 22:08:02 -05:00
KeybadeBlox
76e39fdd27 Begin Ghidra mangling script
Looks like we'll be writing our own Ghidra scripts.  At least these
should enable pretty thorough sharing of work and decent UX.
2026-02-05 22:31:36 -05:00