Commit Graph

184 Commits

Author SHA1 Message Date
Katy Coe
ee97261242 IL2CPP/Model: Handle invokers from Il2CppGenericMethodFunctionsDefinitions 2020-02-05 05:21:02 +01:00
Katy Coe
896b3b6f69 Model: Implement MethodInvoker and MethodBase.Invoker 2020-02-03 10:06:53 +01:00
Katy Coe
a5a79e2bef IL2CPP: Add GetMetadataUsageType() and GetMetadataUsageMethod() 2020-02-02 23:55:11 +01:00
Katy Coe
e0fcd59693 Model: Fix generic method type arguments naming inconsistency with .NET 2020-02-02 22:40:52 +01:00
Katy Coe
07a956f07e Model: Fix DeclaringType doesn't work for concrete generic instances from TypeSpecs 2020-02-02 22:40:28 +01:00
Katy Coe
9ba0498d9b Model: Add GetType() and GetGenericMethod() convenience functions 2020-02-02 22:39:42 +01:00
Katy Coe
57451de036 Model: Eliminate stream reads and duplicate TypeInfos from GetTypeFromVirtualAddress 2020-02-02 09:36:23 +01:00
Katy Coe
b73885ca8e Model: Correctly resolve metadata MethodRefs (affects IDA output) 2020-02-02 07:21:22 +01:00
Katy Coe
21e77b7965 IL2CPP: Implement GetGenericMethodPointer and VirtualAddress for concrete generic methods from MethodSpecs 2020-02-02 07:20:02 +01:00
Katy Coe
25e35be59f Model: Temporary hack to ensure concrete type parameter substitution works 2020-02-02 06:47:37 +01:00
Katy Coe
7b1d46644d Model: Generate ConstructorInfo for generic class constructors from MethodSpecs 2020-02-02 05:17:47 +01:00
Katy Coe
63fb345bb1 Model: Include TypesByMethodSpecClassIndex in Model.Types 2020-02-02 04:54:24 +01:00
Katy Coe
759a77031e Model: Substitute concrete parameter types into generic methods from MethodSpecs 2020-02-02 04:45:43 +01:00
Katy Coe
d2cb63dc95 Model: Add basic concrete generic method definitions from MethodSpecs 2020-02-02 03:57:19 +01:00
Katy Coe
e33206a360 Model: Add basic concrete generic types from MethodSpecs 2020-02-02 03:00:06 +01:00
Katy Coe
e4ef5471af Model: Fix incorrect behaviour of MethodBase.IsConstructedGenericMethod and IsGenericMethodDefinition 2020-02-02 01:04:57 +01:00
Katy Coe
9658d4475a Model: Show generic method parameters in internal full type strings 2020-02-02 00:11:14 +01:00
Katy Coe
e60f1ef89b Model: Implement various generic method properties 2020-02-01 23:42:51 +01:00
Katy Coe
007779df62 Model: Don't return duplicates or nulls in Model.Types
Prevents duplicates appearing in IDA Python script
2020-01-30 07:57:38 +01:00
Katy Coe
37f1c49828 Model: Ensure all TypeRefs are initialized with the model
Ensures that all types are output in the IDA Python script
Includes TypeRefs that aren't used in any type definition or member
2020-01-30 07:54:45 +01:00
Katy Coe
a1e332620c Move FileFormatReader.cs and Il2CppModel.cs 2020-01-30 06:44:03 +01:00
Katy Coe
9220799d56 Model: Fix ContainsGenericParameters behaviour for element types etc. 2020-01-30 06:32:31 +01:00
Katy Coe
a640d866ae Model: Types from TypeRefs should not have a definition or index 2020-01-29 10:20:36 +01:00
Katy Coe
a338196057 Model: Introduce TypeInfo.GetGenericArguments(), refactor handling 2020-01-29 10:14:41 +01:00
Katy Coe
871c368e49 Model: Implement GenericParameterPosition for TypeRefs 2020-01-29 08:46:46 +01:00
Katy Coe
a7027c886e Minor tidying up 2020-01-28 05:57:24 +01:00
Katy Coe
8a27b45775 IDA: Output string literals correctly 2020-01-27 06:41:18 +01:00
Katy Coe
7704c9f3d9 Model: Fix unscoped type names in files with no namespaces in scope 2020-01-19 02:57:24 +01:00
Katy Coe
adc52818fb Model: Detect and fix orphan property methods 2020-01-18 21:30:34 +01:00
Katy Coe
64b263bafb IL2CPP: Merge attribute and method pointers, improve attribute function end addresses 2020-01-18 20:28:53 +01:00
Katy Coe
140e31b206 Output: Fix crash outputting undefined enum value (use cast instead) (#11) 2020-01-06 11:06:14 +01:00
Katy Coe
2b32d2535e Remove debugging output from TypeInfo.getScopedFullName 2019-12-14 14:05:10 +01:00
Katy Coe
e3058597f3 Output: Fix regression in truncation of interface names for explicitly implemented properties 2019-12-14 14:00:10 +01:00
Katy Coe
8d272a25fc Make model access thread-safe 2019-12-14 12:00:47 +01:00
Katy Coe
98366a7b49 Output: Explicitly implemented generic properties could have mismatched chevrons 2019-12-12 11:14:14 +01:00
Katy Coe
001e60dbde Output: Fix \u-format string escaping 2019-12-12 10:33:33 +01:00
Katy Coe
1ce823833f Output: Extension method first parameter attributes must go before 'this' 2019-12-12 10:26:09 +01:00
Katy Coe
f60047a55a Output: Prepend fields, events, properties and parameter names using reserved C# keywords with @ 2019-12-12 10:18:55 +01:00
Katy Coe
88be17003e Output: Don't include nested generic type parameters in generic type usages (CS0305) 2019-12-11 12:34:36 +01:00
Katy Coe
ffb1ebced7 Output: Ignore static and non-public constructors when determining if an attribute should be commented out (CS7036) 2019-12-11 10:47:20 +01:00
Katy Coe
5a42afe7f2 Model and Output: Dramatically improve handling of byref types 2019-12-11 09:30:00 +01:00
Katy Coe
d8befc0a15 Output: Give non-auto-properties accessor bodies (CS8080) 2019-12-10 15:32:13 +01:00
Katy Coe
33de89bed7 Output: Add AttributeTargets.All to AttributeUsage instances when using --must-compile (CS0592) 2019-12-10 03:13:37 +01:00
Katy Coe
c24bb6a7bd Output: Use default instead of null for default struct and generic type parameter values (CS1750) 2019-12-10 02:57:57 +01:00
Katy Coe
12ecce4086 Output: Don't show default values for required parameters in method signatures (CS1737) 2019-12-10 01:34:50 +01:00
Katy Coe
a38b75c9c1 Output: struct/class must be the first generic type constraint (CS0449) 2019-11-30 07:21:09 +01:00
Katy Coe
da9252a68c Output: Show enum usages as their corresponding member names (CS0266, CS1750) 2019-11-29 08:37:46 +01:00
Katy Coe
b36ccda9b9 Model: Small naming corrections to improve reliability (re: CS0308) 2019-11-29 06:51:30 +01:00
Katy Coe
022d6db74a Model and Output: Calculate generic type parameter scopes in nested type usages (CS0308) 2019-11-29 04:56:39 +01:00
Katy Coe
6e304ab7da Model: Include type parameter constraints in generic class definition when finding referenced types (CS0246) 2019-11-29 02:46:42 +01:00