Commit Graph

142 Commits

Author SHA1 Message Date
Katy Coe
0808fe966a AppModel: IDA output integration; item groups 2020-07-16 12:37:39 +02:00
Katy Coe
f41fd74baa AppModel: Include string literals for il2cpp versions < 19 2020-07-14 17:00:12 +02:00
Katy Coe
ef043383fc AppModel: Handle .NET unmapped pointer type definitions 2020-07-14 16:56:30 +02:00
Katy Coe
b9612676ed AppModel: Include string literals in model 2020-07-13 20:23:07 +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
6015d9e0ab AppModel: Add initial handling of methods (AppMethod) 2020-07-12 19:32:12 +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
93fed266ea PE: Add ability to fetch exports with GetExports() 2020-07-03 19:50:46 +02:00
Katy Coe
117a440b58 Outputs: Fix C++ output crash for il2cpp versions <19 2020-07-02 20:08:53 +02:00
Katy Coe
7f4c4cb14d Update version to 2020.1 2020-07-02 16:49:32 +02:00
Katy Coe
24e4c65c4c Outputs: Add MSVC/GCC option to CppScaffolding and CLI 2020-07-02 15:18:15 +02:00
Katy Coe
0731b380fd C++: Separate compiler option from CppDeclarationGenerator 2020-07-02 15:17:12 +02:00
Katy Coe
c59245ec56 Outputs: Add C++ output module 2020-07-02 14:21:40 +02:00
Katy Coe
249873ab02 C++: Add some MSVC symbols to reserved names 2020-07-02 14:21:21 +02:00
Katy Coe
23db04c369 Minor re-organization 2020-06-30 00:13:18 +02:00
Katy Coe
18b94e08f3 Add CppDeclarationGenerator.Reset() 2020-06-30 00:06:07 +02:00
Katy Coe
a5d15f3daa Fix enum renaming on 2nd use in C++ declarations 2020-06-30 00:05:27 +02:00
Katy Coe
a3a0c17ee1 Dramatically improve startup speed when not using APK/IPA 2020-06-30 00:03:37 +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
Robert Xiao
de6d9e2230 Move duplicated sanitizeIdentifier to Extensions
Also ensure that the identifier always starts with an underscore or
letter, which fixes issues with obfuscated identifiers.
2020-06-29 22:10:45 +02:00