修复RenameMethod未处理MethodImpl的bug
parent
647619943f
commit
48f1dfe64a
|
@ -399,6 +399,8 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void BuildRefMethodMetasMap(Dictionary<MethodDef, RefMethodMetas> refMethodMetasMap)
|
||||
{
|
||||
foreach (ModuleDef mod in _obfuscatedAndNotObfuscatedModules)
|
||||
|
@ -417,6 +419,35 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var type in mod.GetTypes())
|
||||
{
|
||||
foreach (MethodDef method in type.Methods)
|
||||
{
|
||||
if (method.HasOverrides)
|
||||
{
|
||||
foreach (MethodOverride methodOverride in method.Overrides)
|
||||
{
|
||||
if (methodOverride.MethodDeclaration is MemberRef memberRef)
|
||||
{
|
||||
RenameMethodRef(memberRef, refMethodMetasMap);
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(methodOverride.MethodDeclaration is MethodDef);
|
||||
}
|
||||
if (methodOverride.MethodBody is MemberRef memberRef2)
|
||||
{
|
||||
RenameMethodRef(memberRef2, refMethodMetasMap);
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(methodOverride.MethodBody is MethodDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -617,28 +648,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
|||
Debug.Log("Rename events begin");
|
||||
}
|
||||
|
||||
//private void Rename(ModuleDef mod)
|
||||
//{
|
||||
// string oldName = mod.Assembly.Name;
|
||||
// string newName = _renameRecordMap.TryGetExistRenameMapping(mod, out var n) ? n : _nameMaker.GetNewName(mod, oldName);
|
||||
// _renameRecordMap.AddRename(mod, newName);
|
||||
// mod.Assembly.Name = newName;
|
||||
// mod.Name = $"{newName}.dll";
|
||||
// //Debug.Log($"rename module. oldName:{oldName} newName:{newName}");
|
||||
// foreach (AssemblyReferenceInfo ass in GetReferenceMeAssemblies(mod))
|
||||
// {
|
||||
// foreach (AssemblyRef assRef in ass.module.GetAssemblyRefs())
|
||||
// {
|
||||
// if (assRef.Name == oldName)
|
||||
// {
|
||||
// _renameRecordMap.AddRename(mod, newName);
|
||||
// assRef.Name = newName;
|
||||
// // Debug.Log($"rename assembly:{ass.name} ref oldName:{oldName} newName:{newName}");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
private void Rename(TypeDef type, RefTypeDefMetas refTypeDefMeta)
|
||||
{
|
||||
string moduleName = MetaUtil.GetModuleNameWithoutExt(type.Module.Name);
|
||||
|
|
Loading…
Reference in New Issue