IDA: Add method signature comments to all method output
This commit is contained in:
@@ -69,30 +69,44 @@ def SetName(addr, name):
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach (var method in model.GenericMethods.Values.Where(m => m.VirtualAddress.HasValue)) {
|
foreach (var method in model.GenericMethods.Values.Where(m => m.VirtualAddress.HasValue)) {
|
||||||
writeLines($"SetName({method.VirtualAddress.Value.Start.ToAddressString()}," +
|
var address = method.VirtualAddress.Value.Start.ToAddressString();
|
||||||
$"'{method.DeclaringType.Name}$${method.Name}{method.GetFullTypeParametersString()}')");
|
writeLines($"SetName({address}, '{method.DeclaringType.Name}$${method.Name}{method.GetFullTypeParametersString()}')");
|
||||||
|
writeLines($"idc.set_cmt({address}, r'{method}', 1)");
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var method in model.AttributesByIndices.Values.Where(m => m.VirtualAddress.HasValue)) {
|
foreach (var method in model.AttributesByIndices.Values.Where(m => m.VirtualAddress.HasValue)) {
|
||||||
writeLines($"SetName({method.VirtualAddress.Value.Start.ToAddressString()}," +
|
var address = method.VirtualAddress.Value.Start.ToAddressString();
|
||||||
$"'CustomAttributesGenerator${method.AttributeType.FullName}')");
|
writeLines($"SetName({address}, 'CustomAttributesGenerator${method.AttributeType.FullName}')");
|
||||||
|
writeLines($"idc.set_cmt({address}, r'{method}', 1)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeMethods(string typeName, IEnumerable<MethodBase> methods) {
|
private void writeMethods(string typeName, IEnumerable<MethodBase> methods) {
|
||||||
foreach (var method in methods.Where(m => m.VirtualAddress.HasValue)) {
|
foreach (var method in methods.Where(m => m.VirtualAddress.HasValue)) {
|
||||||
writeLines($"SetName({method.VirtualAddress.Value.Start.ToAddressString()}, '{typeName}$${method.Name}')");
|
var address = method.VirtualAddress.Value.Start.ToAddressString();
|
||||||
|
writeLines($"SetName({address}, '{typeName}$${method.Name}')");
|
||||||
|
writeLines($"idc.set_cmt({address}, r'{method}', 1)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeUsages() {
|
private void writeUsages() {
|
||||||
foreach (var usage in model.Package.MetadataUsages) {
|
foreach (var usage in model.Package.MetadataUsages) {
|
||||||
|
var address = usage.VirtualAddress.ToAddressString();
|
||||||
var escapedName = model.GetMetadataUsageName(usage).ToEscapedString();
|
var escapedName = model.GetMetadataUsageName(usage).ToEscapedString();
|
||||||
|
|
||||||
if (usage.Type != MetadataUsageType.StringLiteral)
|
if (usage.Type != MetadataUsageType.StringLiteral)
|
||||||
writeLines($"SetName({usage.VirtualAddress.ToAddressString()}, '{usagePrefixes[usage.Type]}${escapedName}')");
|
writeLines($"SetName({address}, '{usagePrefixes[usage.Type]}${escapedName}')");
|
||||||
else
|
else
|
||||||
writeLines($"SetString({usage.VirtualAddress.ToAddressString()}, r'{escapedName}')");
|
writeLines($"SetString({address}, r'{escapedName}')");
|
||||||
|
|
||||||
|
if (usage.Type == MetadataUsageType.MethodDef || usage.Type == MetadataUsageType.MethodRef) {
|
||||||
|
var method = model.GetMetadataUsageMethod(usage);
|
||||||
|
writeLines($"idc.set_cmt({address}, r'{method}', 1)");
|
||||||
|
}
|
||||||
|
else if (usage.Type != MetadataUsageType.StringLiteral) {
|
||||||
|
var type = model.GetMetadataUsageType(usage);
|
||||||
|
writeLines($"idc.set_cmt({address}, r'{type}', 1)");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user