Commit Graph

761 Commits

Author SHA1 Message Date
Katy Coe
19a5b3735b Update TestRunner and update-expected-results.ps1 2020-08-02 22:19:31 +02:00
Katy Coe
8926af341f JSON: Add initial JSONMetadata output module (with address map) 2020-08-02 21:21:57 +02:00
Katy Coe
2ab43c41c9 IDA: Separate comment types and function/field types 2020-08-01 18:58:54 +02:00
Katy Coe
c22227441e C++: Output .vcxproj.filters file for solution folder structure 2020-08-01 17:03:44 +02:00
Katy Coe
8372afd619 C++: Rename il2cpp-api-functions-ptr.h and il2cpp-types-ptr.h 2020-08-01 16:56:11 +02:00
Katy Coe
4ae6772f5a C++: Remove windows.h macros/types from reserved words list 2020-08-01 05:24:07 +02:00
Katy Coe
5c97202d8e C++: Significant iteration of scaffolding output (see commit description)
Generate pre-compiled headers for IL2CPP types and functions
Resolved naming conflicts with functions and macros from windows.h
IL2CPP app functions and TypeInfos were incorrectly placed in global namespace instead of 'app'
Added /MP compiler option (multi-processor compilation)
Split source files into folders
Move GetBaseAddress() into helpers.cpp
Add NewConsole() to helpers.cpp
Move init_il2cpp() from IL2CPP declarations header to own source file
Refactor some header files for consistency and duplicate elimination
2020-08-01 05:23:44 +02:00
Katy Coe
792cdc8711 IDA: Fix backslash escaping in C++ header path include 2020-08-01 05:07:22 +02:00
Katy Coe
c6175989cf C++: Add #pragma to disable MSVC C4309 enum truncation warnings 2020-08-01 03:35:07 +02:00
Katy Coe
0bfc5750ad IDA: Abstract idc.set_cmt into SetComment 2020-07-29 01:34:36 +02:00
Katy Coe
7b9c28fdf3 IDA: Don't produce C type header file if it's already available 2020-07-28 19:23:53 +02:00
Katy Coe
4978348d8f C++/IDA: Output text files as ASCII instead of UTF8 (Ghidra fix) 2020-07-28 04:13:43 +02:00
Katy Coe
867ddea168 IDA: Separate type declarations into own header file 2020-07-28 02:40:47 +02:00
Katy Coe
7fa80a4848 C++: Allow il2cpp-types.h to be output independently; include conditional disassembler pre-amble 2020-07-28 02:26:15 +02:00
Katy Coe
adb8594620 C++: Don't output enum underlying types (C compat) 2020-07-28 02:20:53 +02:00
Katy Coe
a9661da14f GUI: Enable drag & drop for all file combinations 2020-07-27 22:14:55 +02:00
Katy Coe
2459bcb4a6 IL2CPP: Add registration structs search via data heuristics 2020-07-27 21:16:44 +02:00
Katy Coe
a621e20b62 Metadata: Add static Sizeof helper 2020-07-27 21:11:43 +02:00
Katy Coe
613747fc9a Implement mapping from file offset to virtual address (all file formats) 2020-07-27 21:10:59 +02:00
Katy Coe
8b2c254235 Tests: Update expected results 2020-07-25 17:24:39 +02:00
Katy Coe
9865813b96 Update README.md 2020-07-25 16:55:48 +02:00
Katy Coe
59f5083235 C++: Add #pragma to disable MSVC C4369 enum range warnings 2020-07-25 16:55:40 +02:00
Katy Coe
cf6b64e0d2 C++: Add PlatformInformation and LoadResource as reserved symbols 2020-07-25 16:55:16 +02:00
Katy Coe
271a85b7f1 C++: Fix incorrect variable declaration of VirtualInvokeData struct for 5.3.6-5.4.6 2020-07-25 16:54:52 +02:00
Katy Coe
dd5a4a29e7 Tests: Update expected results 2020-07-25 16:04:43 +02:00
Katy Coe
87519ba66f Unity: Fix select only matching APIs in discovery instead of all in total version range 2020-07-25 15:54:18 +02:00
Katy Coe
cdc02cb475 Tests: Update UnityVersions test 2020-07-25 15:30:57 +02:00
Katy Coe
de73cfe8c3 Unity: Add headers for Unity 2020.1.0 2020-07-25 14:55:03 +02:00
Katy Coe
1240fe3647 Unity: Fix types/API header version mismatch when binary is missing exports 2020-07-25 14:50:09 +02:00
Katy Coe
4473a5225c Unity: Update type header names for 2018.4.25 and 2019.4.5 2020-07-25 05:09:47 +02:00
Katy Coe
f7263c8388 Unity: Fix incorrect API header name version ranges 2020-07-25 05:09:14 +02:00
Katy Coe
b075821092 Unity: Fix crash in GetTypeHeaderText() when VersionRange.Max is null (no upper bound) 2020-07-25 04:13:31 +02:00
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
d09d53cc67 Tests: Target MSVC for C++ projects 2020-07-24 17:24:37 +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
9966af0e73 AppModel: Prefer the latest Unity header versions instead of the earliest 2020-07-24 17:01:55 +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
e0a6c8746e AppModel: Only populate API exports existing in both the binary and selected API header 2020-07-24 16:32:34 +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
7e9c6b1ee0 AppModel: Implement APIExports with CppFnPtrType 2020-07-23 02:28:18 +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
3fd97649e6 IL2CPP: Ignore API exports starting "il2cpp_z_" 2020-07-21 16:19:47 +02:00
Katy Coe
2f3b0d7276 AppModel/IDA: Typed MethodInvokers for 5.3.0-5.6.7 don't use Il2CppMethodPointer 2020-07-20 22:48:40 +02:00
Katy Coe
a4d3ae8dc9 Tests: Update expected results 2020-07-20 20:19:33 +02:00
Katy Coe
64fbee92b0 Tests: Fix copy il2cpp-types.h from wrong location in update-expected-results.ps1 2020-07-20 20:18:45 +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
58309b9943 Tests: Provide more detailed mismatch reporting in TestRunner 2020-07-20 17:12:55 +02:00