Commit Graph

101 Commits

Author SHA1 Message Date
Katy Coe
48005b4093 C++: Fix enum int top bit set compile errors in VS <= 2017 2020-07-24 17:41:40 +02:00
Katy Coe
cd75d5e877 C++: Add 'Sleep' as a reserved keyword 2020-07-24 17:40:30 +02:00
Katy Coe
44a5fe009a C++: Output il2cpp-api-functions.h with unavailable exports elided 2020-07-24 17:20:37 +02:00
Katy Coe
8bb40d98b2 Unity: Try really hard to find the best IL2CPP API header match for the binary 2020-07-24 17:01:13 +02:00
Katy Coe
336648e8bf C++: Enums with default underlying type did not respect 32/64-bit architecture size 2020-07-24 16:23:36 +02:00
Katy Coe
deeb8daa97 Unity/C++: Significant re-factoring of Unity header management (see description)
Extract resource handling to UnityResource
Add API header resource helpers
Fix UnityVersion ToString() when Min == Max
Replace fixed list of Il2Cpp header reserved names with parsed names from actual selected headers (solves TypeInfo/MemberInfo problems in 5.3.0-5.3.4 (metadata v16-20))
Use CppDeclarationGenerator when initializing CppTypeCollection to ensure all Il2Cpp header symbols are reserved
Process API headers in CppTypeCollection.FromUnityHeaders
Move #define IS_32BIT handling to UnityHeaders
Update tests
2020-07-22 19:01:33 +02:00
Katy Coe
53909c539c C++: Improve parsing of #defines, #ifdefs, #ifs, function pointers 2020-07-21 16:20:44 +02:00
Katy Coe
83e94ebf28 Unity: Fix missing VirtualInvokeData for 5.3.6-5.4.6 2020-07-20 18:56:32 +02:00
Katy Coe
e37de64839 AppModel/C++: Fix regression in handling of C# primitive pointer types 2020-07-20 18:15:41 +02:00
Katy Coe
8cd2d4ff4a Unity: Add version range CompareTo, Intersect and handle no version upper bound 2020-07-20 17:06:25 +02:00
Katy Coe
ea91c2b4ec Extract assembly resource management from UnityHeader to ResourceHelper 2020-07-20 07:05:20 +02:00
Katy Coe
964685e44a Extract Unity version range management from UnityHeader to UnityVersionRange 2020-07-20 06:39:29 +02:00
Katy Coe
e7d3600f67 Include all Unity il2cpp-api-functions.h versions 2020-07-19 21:27:29 +02:00
Katy Coe
4cb7f50f13 Update Unity header generation support to latest 2020-07-19 21:26:52 +02:00
Katy Coe
071b1efa67 C++: Generate Il2CppClass definitions for enum and array types 2020-07-19 15:43:50 +02:00
Katy Coe
2b1aff5bd1 C++: Preserve function name in CppFnPtrType.FromSignature 2020-07-18 03:32:23 +02:00
Katy Coe
ef043383fc AppModel: Handle .NET unmapped pointer type definitions 2020-07-14 16:56:30 +02:00
Katy Coe
6e796a200f AppModel: Generate composite type mappings 2020-07-13 19:52:04 +02:00
Katy Coe
fdf198084f C++: Fix regression causing string literals to not be given a type in IDAPython output 2020-07-13 19:50:38 +02:00
Katy Coe
20d0ffcdfe AppModel: Move C++ type ordering to model 2020-07-13 17:55:32 +02:00
Katy Coe
3c4908c470 Fix fatal crash in Unity version parsing for non-English locales 2020-07-12 19:33:04 +02:00
Katy Coe
873a6c98f6 AppModel: First iteration of ApplicationModel API
Integrate with C++ scaffolding
Add new tests
Rename Il2CppModel to TypeModel
Incomplete IDAPython integration
CLI and GUI support
Update README.md
2020-07-09 03:48:50 +02:00
Katy Coe
72e8bb352c Satan is happy with our progress 2020-07-05 13:24:54 +02:00
Katy Coe
3db319711c C++: Many small quality-of-life code improvements 2020-07-05 04:02:43 +02:00
Katy Coe
2412da4f8b C++: Add boilerplate for CppApplicationModel 2020-07-04 23:41:30 +02:00
Katy Coe
6c6f72618a C++: Split CppType, CppField, CppTypes into separate files 2020-07-04 17:10:09 +02:00
Katy Coe
e3043f63c4 C++: Implement "o" string format for offsets and sizes 2020-07-04 16:52:19 +02:00
Katy Coe
dd47ed7203 C++: Properly implement function pointers + tidying up / minor fixes 2020-07-04 16:14:36 +02:00
Katy Coe
91b93f3263 C++: Implement enums 2020-07-04 13:03:23 +02:00
Katy Coe
a9d002fd78 C++. Compatibility fixes for release 2020.1 2020-07-04 02:30:50 +02:00
Katy Coe
4ca640d551 C++: CppTypes add enumerators & indexers, flattened fields, force sorting, update test 2020-07-04 02:30:50 +02:00
Katy Coe
46f2b9eb53 C++: Fix FromUnityVersion not forwarding wordSize 2020-07-04 02:30:50 +02:00
Katy Coe
9e72412230 C++: Handle function pointers 2020-07-04 02:30:50 +02:00
Katy Coe
9ee8065d57 C++: Fix assembly resource location bug 2020-07-04 02:30:50 +02:00
Katy Coe
8a85acb242 C++: Various tweaks
Indent output
Handle bool fields
Skip comments and methods
Check that every line that matters is parsed
Update test to check every Unity version
2020-07-04 02:30:50 +02:00
Katy Coe
8f56aea002 C++: Handle #ifdef IS_XXBIT, allow word size argument 2020-07-04 02:30:49 +02:00
Katy Coe
14b7d09e9d C++: Handle comma-separated fields 2020-07-04 02:30:49 +02:00
Katy Coe
b38a348709 C++: Handle enum prefix in field 2020-07-04 02:30:49 +02:00
Katy Coe
727cabe0db C++: Parse __attribute((aligned(X))) 2020-07-04 02:30:49 +02:00
Katy Coe
f6e4c6eb09 C++: Parse array fields 2020-07-04 02:30:49 +02:00
Katy Coe
630b0a771d C++: Implement bitfields 2020-07-04 02:30:49 +02:00
Katy Coe
29c9514fdf C++: Handle unsigned/volatile, improve output, typedefs, regexes 2020-07-04 02:30:49 +02:00
Katy Coe
65b9bb2349 C++: Improve handling of multiple pointer indirection and typedefs 2020-07-04 02:30:49 +02:00
Katy Coe
5259374f83 C++: Improve handling of pointers 2020-07-04 02:30:49 +02:00
Katy Coe
ee2f851a1a C++: Finish initial draft of header parsing 2020-07-04 02:30:49 +02:00
Katy Coe
d8aaba375e C++: Parse typedef struct definitions and nested types as fields 2020-07-04 02:30:49 +02:00
Katy Coe
f407cb94df C++: Add parse loop, implement typedef alias parsing 2020-07-04 02:30:49 +02:00
Katy Coe
bee75fc6b1 C++: Add boilerplate for type parsing 2020-07-04 02:30:49 +02:00
Katy Coe
0731b380fd C++: Separate compiler option from CppDeclarationGenerator 2020-07-02 15:17:12 +02:00
Katy Coe
249873ab02 C++: Add some MSVC symbols to reserved names 2020-07-02 14:21:21 +02:00