Commit Graph

173 Commits

Author SHA1 Message Date
Katy Coe
47de0ff56f JSON: Output symbol data 2020-08-09 00:30:31 +02:00
Katy Coe
c97bd7054e JSON: Write all exports in metadata file 2020-08-08 21:39:40 +02:00
Katy Coe
567bbd2706 Script: Rename IDAPythonScript to PythonScript 2020-08-06 05:21:55 +02:00
Katy Coe
b5a70d94fd Script: Allow script target API to be passed as argument 2020-08-06 05:20:20 +02:00
Katy Coe
25d5a68755 Script: Auto-detect available script targets (GetAvailableTargets) 2020-08-06 05:16:44 +02:00
Katy Coe
da61933788 Ghidra: Ensure function names are set correctly in all cases 2020-08-06 04:49:53 +02:00
Katy Coe
beb859128c Ghidra: Only reset image base to zero for ELF binaries 2020-08-04 05:44:08 +02:00
Katy Coe
eb55e5b527 AppModel/C++/JSON/Script: Don't output generic method definitions (no compiled code) 2020-08-04 05:14:19 +02:00
Katy Coe
5c2e06daee IDA: Refactor to use universal script and JSON metadata 2020-08-04 02:32:16 +02:00
Katy Coe
dea29751ef Add embedded resources for universal script handling (ScriptResources) 2020-08-04 01:52:43 +02:00
Katy Coe
160569f239 JSON: Fix il2cpp_codegen_register signature for Unity < 5.3.5 2020-08-04 01:52:07 +02:00
Katy Coe
64860d9c03 JSON: Replace array of pointer *[x] with * * in Il2CppCodeGenModule (Ghidra fix) 2020-08-04 00:50:30 +02:00
Katy Coe
5bb879a676 JSON: Disable comments by default; re-factor handling of string literals 2020-08-03 22:11:40 +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
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
59f5083235 C++: Add #pragma to disable MSVC C4369 enum range warnings 2020-07-25 16:55:40 +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
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
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
ccb401bb12 IL2CPP: Add Binary.GetAPIExports() 2020-07-20 17:09:19 +02:00
Katy Coe
386a666fff C++: Output DLL injection boilerplate project 2020-07-19 15:44:26 +02:00
Katy Coe
f7d2dd6e2d C++: Output method pointers and signatures 2020-07-18 21:47:33 +02:00
Katy Coe
6d50ab7546 C++: Output Il2CppClass* (TypeInfo) pointers 2020-07-18 21:23:23 +02:00
Katy Coe
7124149fef C++: Output IL2CPP API function pointers 2020-07-18 19:47:45 +02:00
Katy Coe
632d1d2d9b C++: Generate output in a folder 2020-07-18 19:18:08 +02:00
Katy Coe
f5e5037a9b AppModel: Add AppType.Name 2020-07-18 03:54:54 +02:00
Katy Coe
307cf29dcd C++: Re-factor custom attribute generator signature handling 2020-07-18 03:33:33 +02:00
Katy Coe
d1501db903 IDA: Produced typed RuntimeInvoker methods 2020-07-17 04:29:38 +02:00
Katy Coe
fc313de0b2 IDA: Produce typed CustomAttributesCacheGenerator methods 2020-07-17 03:23:15 +02:00
Katy Coe
8bcdadd7b4 IDA: Tidy up output ordering and titling 2020-07-16 14:43:04 +02:00
Katy Coe
0808fe966a AppModel: IDA output integration; item groups 2020-07-16 12:37:39 +02:00
Katy Coe
6e796a200f AppModel: Generate composite type mappings 2020-07-13 19:52:04 +02:00
Katy Coe
20d0ffcdfe AppModel: Move C++ type ordering to model 2020-07-13 17:55:32 +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
117a440b58 Outputs: Fix C++ output crash for il2cpp versions <19 2020-07-02 20:08:53 +02:00
Katy Coe
24e4c65c4c Outputs: Add MSVC/GCC option to CppScaffolding and CLI 2020-07-02 15:18:15 +02:00
Katy Coe
c59245ec56 Outputs: Add C++ output module 2020-07-02 14:21:40 +02:00
Katy Coe
23db04c369 Minor re-organization 2020-06-30 00:13:18 +02:00
Robert Xiao
9e455fdabe Renaming for clarity.
Renamed the class CppDeclarations => CppDeclarationGenerator to better reflect
its function and emphasize its statefulness.

Renamed Visit{Type,Method} => Include{Type,Method} to clarify that these methods
include the type or method into the generator state.

Renamed GenerateVisitedTypes => GenerateRemainingTypeDeclarations to clarify
that it outputs *remaining* declarations, i.e. declarations that haven't been
generated yet.
2020-06-29 22:10:45 +02:00
Robert Xiao
393d26b2a3 Move non-output to new CppUtils namespace
We prefer to have the Outputs directory contain just one file or
namespace per output module, so we'll move all C++-related stuff to a
new CppUtils namespace instead.
2020-06-29 22:10:45 +02:00