Katy Coe
e9a66b98d4
Model: Add PropertyAttributes
2021-01-08 22:23:29 +01:00
Katy Coe
bca8baceb9
Model: Copy member attribute flags directly
2021-01-08 22:23:29 +01:00
Katy Coe
71be0f2af2
Update year in copyright messages
2021-01-04 05:26:43 +01:00
Katy Coe
7c65d2c741
Model: Eliminate no-longer needed thread lock in CAD
2020-12-30 09:16:25 +01:00
Katy Coe
b004b8195b
Model: Fix crash in ResolveGenericArguments with 32-bit binary rebased above 0x80000000 ( #119 )
2020-12-30 08:25:01 +01:00
Katy Coe
5dc8e823c4
Plugins: Add IPostProcessTypeModel
2020-12-21 19:11:49 +01:00
Katy Coe
b1d61f81f0
Model: Allow Name to be changed by plugins
2020-12-21 19:02:03 +01:00
Katy Coe
3ddf04eafc
Model: Don't crash on obfuscated assembly or namespace strings
2020-12-08 15:37:24 +01:00
Katy Coe
7289001933
IL2CPP: Add Unity 2021.1 TODOs
2020-11-26 21:42:36 +01:00
Katy Coe
4a75291140
C#: Output floats and doubles with InvariantCulture ( #82 )
2020-10-13 08:32:38 +02:00
Katy Coe
ac17a3a510
C#: Fix handling of scoped names pointing to global:: scope
2020-09-14 12:28:00 +02:00
Katy Coe
27b9b290da
C#/C++: Handle Unicode characters in identifiers
2020-09-14 12:27:12 +02:00
Katy Coe
ff7110144a
C#: Sanitize parameter names ( #70 )
2020-09-14 12:26:37 +02:00
Katy Coe
47cd6b928b
C#: Sanitize method names ( #70 )
2020-09-14 12:25:52 +02:00
Katy Coe
fcbfc65204
C#: Sanitize type names ( #70 )
2020-09-14 05:02:47 +02:00
Katy Coe
8d015c8271
C#: Sanitize field and event names ( #70 )
2020-09-13 15:04:02 +02:00
Katy Coe
e511b99dec
Model: UnmangledBaseName / CSharpSafeName refactoring ( #70 )
2020-09-13 14:51:20 +02:00
Katy Coe
54ac9d7c1a
IL2CPP: Fix crash when loading Il2CppCodeGenModule with no concrete methods ( #58 )
2020-08-22 03:30:17 +02:00
Katy Coe
5828ed106b
Model/C#: Provide FieldHasRVA flag; output metadata preview for static array initializer implementations ( #59 )
2020-08-22 03:14:11 +02:00
Katy Coe
4b86087c7a
Allow longs to call ToAddressString() (as well as ulongs)
2020-08-17 01:43:52 +02:00
Katy Coe
ec6066aa1d
Model: Handle generic type definition fetch for metadata v27
2020-08-16 01:13:27 +02:00
Katy Coe
1f738a60c6
IL2CPP: Load metadata v27; mark broken areas with TODO
2020-08-15 06:28:48 +02:00
Katy Coe
99a7e2e8cb
C#: Output async keyword for async methods (and suppress AsyncStateMachine)
2020-08-14 03:33:41 +02:00
Katy Coe
87de370a3a
Model: Add Model.CustomAttributeGeneratorsByAddress
2020-08-09 21:35:55 +02:00
Katy Coe
84f82474eb
Refactor Model.CustomAttributeGenerators to give list of unique VAs per TypeInfo
2020-08-09 21:32:43 +02:00
Katy Coe
a252800052
Model: Add GetMethodBody() to CustomAttributeData and MethodInvoker
2020-08-09 20:53:10 +02:00
Katy Coe
ea8a18353a
Model: Change CustomAttributeData.VirtualAddress to be non-nullable
2020-08-09 20:44:13 +02:00
Katy Coe
3fb0b085da
Model: Add Scope.Empty static helper
2020-08-09 19:24:54 +02:00
Katy Coe
bdb9f7935b
Model: Allow null namespace list in Scope for getScopedFullName()
2020-08-09 19:24:41 +02:00
Katy Coe
508c35135b
Model: Add unique custom attributes generator list (CustomAttributesGenerators)
2020-08-09 19:23:57 +02:00
Katy Coe
212c01745c
Model: Don't crash on GetCustomAttributes(TypeInfo) if Definition is null (arrays, generics etc.)
2020-08-09 18:07:46 +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
e37de64839
AppModel/C++: Fix regression in handling of C# primitive pointer types
2020-07-20 18:15:41 +02:00
Katy Coe
071b1efa67
C++: Generate Il2CppClass definitions for enum and array types
2020-07-19 15:43:50 +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
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
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
3ccbab2461
Add/modify copyright notices
2020-06-29 22:10:45 +02:00
Robert Xiao
4ba48b9c75
Add generics support to TypeInfo.GetVTable
...
This patch fixes TypeInfo.GetVTable so that it specializes the vtable
for generic type instances. Also fix a minor bug in PropertyInfo that
would pass null pointers to GetMethodByDefinition.
2020-06-29 22:10:45 +02:00
Katy Coe
181d3ad600
CS: Don't output redundant interfaces in type declarations
2020-06-22 22:56:26 +02:00
Katy Coe
42310483af
CS: Fix "Namespace used like type" (CS0118) (needs additional work)
2020-06-22 22:35:52 +02:00
Katy Coe
ef22c6628b
CS: Fix enumeration scoping on default field values (CS0103)
2020-06-22 18:38:16 +02:00
Katy Coe
2791721dd1
Model: Implement MethodBase.GetMethodBody()
2020-06-22 17:35:23 +02:00
Katy Coe
9c51e72cc2
CS: Fix representation of Infinity and NaN
2020-06-20 21:26:29 +02:00
Katy Coe
e0fe7fa1b9
CS: Add unsafe modifier to struct constructors where necessary (CS0214)
2020-06-20 21:11:03 +02:00
Katy Coe
d479431585
Model: Add FieldInfo.RequiresUnsafeContext
2020-06-20 20:43:06 +02:00
Katy Coe
ed1d80aa15
CS: "unsafe" goes after "static" to avoid IntelliSense notice
2020-06-20 20:34:51 +02:00
Robert Xiao
44df54b639
Suppress new on operator methods.
...
Per the C# language reference
(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/basic-concepts#hiding-through-inheritance ):
> The rules governing operator declarations (Operators) make it
> impossible for a derived class to declare an operator with the same
> signature as an operator in a base class. Thus, operators never hide
> one another.
Therefore, new is not necessary or permitted on operators, even if the
method signatures are identical. This situation can arise if, for
example, an explicit conversion operator from the same target class
exists in both a base class and a derived class.
2020-06-20 10:17:48 +02:00
Robert Xiao
6fff363c29
Fix bugs in testcase #11 and CSharp3.
...
Bug #1 is that in 32-bit programs, typeDefinitionIndex might be
0xffff_ffff_ffff_ffff instead (32-bit -1 sign-extended to 64 bits), so
we fix that by simply masking to get the low 32 bits.
Bug #2 is that, if the TypeRef points to no generic instance, we return
null, which wasn't being checked for in the IDAPythonScript generator.
Since that's the only time we could get a null type in Types, we simply
remove nulls from the Types collection.
2020-06-20 10:17:48 +02:00