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
a48720796c
Tests: Add test stub for CppTypes
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
1628d1f330
Update README.md
2020-07-02 16:47:00 +02:00
Katy Coe
acc95e00c1
GUI: Add C++ scaffolding output support
2020-07-02 16:04:39 +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
01519c4c29
CLI: Add C++ header output support
2020-07-02 14:24:20 +02:00
Katy Coe
25d19457a9
Tests: Make TestRunner output C++ headers
2020-07-02 14:21:56 +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
6c45e5867c
Tests: Rename TestIDAOutput -> TestUnityVersion
2020-07-01 13:06:33 +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
Robert Xiao
95ee085374
Comments and minor refactoring into lambdas
2020-06-29 22:10:45 +02:00
Robert Xiao
3ccbab2461
Add/modify copyright notices
2020-06-29 22:10:45 +02:00
Robert Xiao
b7c93ffcc7
Type string literals as System.String
2020-06-29 22:10:45 +02:00
Robert Xiao
67acd18c03
Finish types implementation: vtables and classes.
...
Also fix a few minor bugs involving arrays and enums. Both should not
have __Class structures generated.
2020-06-29 22:10:45 +02:00
Robert Xiao
930202dfdd
Handle idc.SetType return value correctly.
...
Apparently, idc.SetType returns True if the type is set for the first
time, False if the type is updated, and None if the type couldn't be set
(rather differently from what the documentation says).
2020-06-29 22:10:45 +02:00
Robert Xiao
75744a31dc
First whack at type structs for IDA.
...
This commit only includes instance field structs, not class
structs/vtables/static fields.
2020-06-29 22:10:45 +02:00