* Always set image base to 0 for Ghidra
* Script improvements
Everything here is for Ghidra:
* Use `%` instead of f-string (Ghidra still uses python 2.7, meanwhile f-strings were added in 3.6)
* Handle errors when applying type (Ghidra throws exception unlike IDA)
* Don't trigger decompiler (analysis will be faster)
* Revert back string literals
* Set image base to zero only for ELF
I don't know about PE with Ghidra
* Update README for disassemblers
* IDA 7.6 required due `ida_ida.inf_is_32bit_exactly()`
* Ghidra now don't launch decompiler for whole binary
* Set image base to 0 in script
Remove %IMAGE_BASE% since we don't use it anymore
* Create XREFs for Ghidra
Now you can jump from `MethodInfo` to actual method
* Fix demangler for Ghidra
Ghidra's demangler can process only functions in auto analysis. Now both `TypeInfo` and `MethodInfo` are displayed properly
---------
Co-authored-by: commonuserlol <commonuserlol@users.noreply.github.com>
In 2019.3.7f1, the following fields were added to
Il2CppCodeRegistration:
uint32_t interopDataCount;
Il2CppInteropData* interopData;
+ uint32_t windowsRuntimeFactoryCount;
+ Il2CppWindowsRuntimeFactoryTableEntry* windowsRuntimeFactoryTable;
uint32_t codeGenModulesCount;
const Il2CppCodeGenModule** codeGenModules;
These two fields overlap the old codeGenModules fields, causing failures.
The current fix is simply to bump the version to 24.3 if these fields are
detected in order to get the correct codeGenModules pointer. Long term, a
better detection mechanism (probably based on examining the name string
pointer in codeGenModules[0]) will be necessary. However, this is pending
more samples of 2019.3.7+ for testing.