Commit graph

16 commits

Author SHA1 Message Date
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
78127e64ef Arguments via environment variables in delink.sh
It was really annoying having to type all that in every time.
2026-02-12 16:16:07 -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
KeybadeBlox
35c8844529 Move everything else to ghidra/ directory
The only stuff left in delink/ was also for using with Ghidra, so we may
as well also put it in ghidra/.
2026-02-04 20:01:06 -05:00
KeybadeBlox
63002e0f08 Add data type import for Ghidra 2026-02-04 19:52:12 -05:00