Commit Graph

577 Commits

Author SHA1 Message Date
commonuserlol
665e70324f Ghidra script improvements (#7)
* 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>
2024-08-10 21:00:41 +02:00
LukeFZ
b4aaa8df5e Make script paths always use / as the path seperator to be cross-compatible 2024-07-15 16:11:24 +02:00
LukeFZ
87766f6f96 Add support for metadata version 29.2 and 31 2024-06-24 18:41:14 +02:00
LukeFZ
98edac1aea Allow usage without the plugins folder 2024-06-24 18:40:19 +02:00
Luke
396c222ac5 Tweak 29.1 heuristic 2024-06-24 14:18:49 +02:00
Luke
692f4e05ef Fix ghidra script output 2024-05-24 03:09:00 +02:00
LukeFZ
b21b6e89ab properly fix scoped name for generic arrays 2024-02-27 17:34:24 +01:00
LukeFZ
1e27f8672d Dump default bytearray value as base64 in c# output 2024-02-25 15:26:46 +01:00
LukeFZ
eababc31f3 Add fallback to invalid compressed int in BlobReader 2024-02-25 15:24:09 +01:00
LukeFZ
e328ed9b84 just check for FullName == null in getScopedFullname 2024-02-25 15:23:58 +01:00
LukeFZ
2a492e02ba Update getScopedFullName for generic params + update README 2024-02-25 11:32:20 +01:00
LukeFZ
0f7cd027c3 create fake string segment to allow ida to show the actual strings, also add custom xref between methodinfo and method when both exist 2024-02-16 11:43:15 +01:00
LukeFZ
42d97813df Fix idaclang support for 8.3 2024-02-16 09:49:00 +01:00
LukeFZ
939bedac57 Skip function boundaries when a .pdata segment is detected, add (very slow) folder creation which is disabled by default 2024-02-13 15:02:16 +01:00
LukeFZ
55532fdc8a Overhaul IDA script output and add progress waitbox 2024-02-13 06:48:36 +01:00
LukeFZ
6b060c274a Fix assembly shim output for older Unity versions due to non-explicit class layouts 2023-12-10 21:58:22 +01:00
LukeFZ
7b03b939a0 Fix some issues loading ELFs with invalid SHTs and broken symbol entries 2023-12-09 14:01:54 +01:00
LukeFZ
ef56ebbd2f Fix header generation when a struct contains an enum pointer 2023-12-07 20:53:03 +01:00
LukeFZ
1d2890961c Fix custom attribute parsing when a null array is used and when an assembly has no attributes 2023-12-07 20:52:06 +01:00
LukeFZ
5b1d9c67d1 Add name mangling to Methods/MethodInfo/TypeInfo/TypeRef, remove Boxing from ValueTypes when used as the this parameter, fix crashes when a module has no attributes 2023-12-06 20:09:35 +01:00
LukeFZ
e9434f4cad Add better il2cpp_array_size_t definition for script outputs in versions post 2017.2.1, fix some other cpp gen issues 2023-12-02 11:22:32 +01:00
LukeFZ
f1cb0d14a2 Export FieldInfo/FIeldRva contents into script metadata and import as comments 2023-12-02 08:27:12 +01:00
LukeFZ
8755d99d63 Slight rebranding, add new README section, bump version to 2023.1 2023-12-01 09:53:01 +01:00
LukeFZ
5afe295ef0 also set rva value as dnlib InitialValue 2023-12-01 09:39:02 +01:00
LukeFZ
7120970ece Use actual size of static array initializers 2023-12-01 08:14:12 +01:00
LukeFZ
7e7d345c30 Add support for ThreadStatic fields 2023-12-01 07:08:48 +01:00
LukeFZ
227aefedef simplify custom attribute logic a bit by always returning arrays as ConstantBlobArrayElement 2023-12-01 06:46:58 +01:00
LukeFZ
6aa96b431d Support reading and writing custom arguments for v29 2023-12-01 04:43:27 +01:00
LukeFZ
40201d6e84 Load tokens from AttributeDataRanges for v29 2023-11-30 21:38:06 +01:00
LukeFZ
d7067225fe fix Il2CppType definition for 27.2+ (better) 2023-11-30 21:37:17 +01:00
LukeFZ
cbc22dcaf6 Update submodule & remove unneeded nuget pkg 2023-11-30 21:34:52 +01:00
LukeFZ
ef1a5d1e83 Add BlobReader, fix Il2CppType for 27.2+ 2023-11-30 13:31:37 +01:00
LukeFZ
a4528e5f55 Add FieldRva MetadataUsage type and fix current heuristic 2023-11-30 05:15:01 +01:00
LukeFZ
ab841ccb2b Optimize some of the string operations 2023-11-30 05:13:19 +01:00
LukeFZ
9f6309fb46 forgot to commit the if part 2023-11-29 21:39:24 +01:00
LukeFZ
a24fcb50bd use different late binding and image scan implementations 2023-11-29 21:34:49 +01:00
LukeFZ
8ffc7e0021 Add stuff for v29 2023-11-29 21:32:43 +01:00
LukeFZ
a6d9291303 add classes for ver 29, fix some stuff for v24 2023-11-29 21:22:51 +01:00
LukeFZ
e3e0382e8c forgot to commit the pointerSize decl 2023-11-29 21:20:26 +01:00
LukeFZ
9f0d0476bb cache tyoes 2023-11-29 21:19:41 +01:00
LukeFZ
96e466743d Fix 24.5 compatibility, check metadata from data first since thats more common now 2023-11-29 21:16:43 +01:00
LukeFZ
2d73e28cea Add fields to script export (PrivateImplementationDetails) 2023-11-29 19:59:48 +01:00
LukeFZ
e6355bb1b4 make MapFileOffsetToVA return ulong.MaxValue instead of throwing to improve perf and debugging experience, other elf improvements 2023-11-29 19:50:56 +01:00
LukeFZ
7c8e0eee3e Add new headers 2023-11-29 19:49:26 +01:00
LukeFZ
b11905a013 Update to .net 8 2023-11-29 19:44:57 +01:00
Katy Coe
0844d4b6bd IL2CPP: Fix regression in Metadata.Sizeof relating to #148 2021-04-12 18:59:33 +02:00
Katy Coe
98157c99ed IL2CPP: Handle metadata v24.5 (Unity 2019.4.21-2019.4.24) (#148) 2021-04-12 17:53:31 +02:00
Katy Coe
0b3d065180 IL2CPP: Update struct layout for v24.5 (#148) 2021-04-12 17:22:15 +02:00
Katy Coe
b4ed297c93 Unity: Add headers for 2018.4.32-33, 2019.4.21-24, 2020.2.4-3.3, 2021.1.0-2 (24.5, 27.2) 2021-04-12 17:15:18 +02:00
Katy Coe
55401a447f Formats: Don't crash on secondary load strategies with existing type mappings (#140) 2021-02-23 23:44:07 +01:00