Fix IDA writeUsages for metadata <19
This fixes a NullReferenceException that was being thrown for IDA script generation for metadata 16 files (e.g. as generated by Il2Cpp v5.3.0f4).
This commit is contained in:
@@ -107,6 +107,11 @@ def MakeFunction(start, end):
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void writeUsages() {
|
private void writeUsages() {
|
||||||
|
if (model.Package.MetadataUsages == null) {
|
||||||
|
/* Version < 19 - no MetadataUsages table */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var usage in model.Package.MetadataUsages) {
|
foreach (var usage in model.Package.MetadataUsages) {
|
||||||
var address = usage.VirtualAddress;
|
var address = usage.VirtualAddress;
|
||||||
var name = model.GetMetadataUsageName(usage);
|
var name = model.GetMetadataUsageName(usage);
|
||||||
@@ -119,8 +124,7 @@ def MakeFunction(start, end):
|
|||||||
if (usage.Type == MetadataUsageType.MethodDef || usage.Type == MetadataUsageType.MethodRef) {
|
if (usage.Type == MetadataUsageType.MethodDef || usage.Type == MetadataUsageType.MethodRef) {
|
||||||
var method = model.GetMetadataUsageMethod(usage);
|
var method = model.GetMetadataUsageMethod(usage);
|
||||||
writeComment(address, method);
|
writeComment(address, method);
|
||||||
}
|
} else if (usage.Type != MetadataUsageType.StringLiteral) {
|
||||||
else if (usage.Type != MetadataUsageType.StringLiteral) {
|
|
||||||
var type = model.GetMetadataUsageType(usage);
|
var type = model.GetMetadataUsageType(usage);
|
||||||
writeComment(address, type);
|
writeComment(address, type);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user