移除Module Rename相关代码

backup
walon 2025-05-05 09:31:18 +08:00
parent 357de094bf
commit 07afb0f7ef
6 changed files with 34 additions and 69 deletions

View File

@ -1,8 +1,9 @@
using System.Text; using dnlib.DotNet;
using System.Text;
namespace Obfuz.ObfusPasses.SymbolObfus namespace Obfuz.ObfusPasses.SymbolObfus
{ {
public class TestNameMaker : NameMakerBase public class DebugNameMaker : NameMakerBase
{ {
private class TestNameScope : NameScopeBase private class TestNameScope : NameScopeBase
{ {
@ -18,5 +19,9 @@ namespace Obfuz.ObfusPasses.SymbolObfus
return new TestNameScope(); return new TestNameScope();
} }
public override string GetNewName(ParamDef param, string originalName)
{
return $"${originalName}";
}
} }
} }

View File

@ -4,8 +4,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
{ {
public interface INameMaker public interface INameMaker
{ {
void AddPreservedName(ModuleDef mod, string name);
void AddPreservedName(TypeDef typeDef, string name); void AddPreservedName(TypeDef typeDef, string name);
void AddPreservedNamespace(TypeDef typeDef, string name); void AddPreservedNamespace(TypeDef typeDef, string name);
@ -20,8 +18,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
void AddPreservedName(EventDef eventDef, string name); void AddPreservedName(EventDef eventDef, string name);
string GetNewName(ModuleDef mod, string originalName);
string GetNewName(TypeDef typeDef, string originalName); string GetNewName(TypeDef typeDef, string originalName);
string GetNewNamespace(TypeDef typeDef, string originalNamespace, bool reuse); string GetNewNamespace(TypeDef typeDef, string originalNamespace, bool reuse);

View File

@ -26,11 +26,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
return nameScope; return nameScope;
} }
public void AddPreservedName(ModuleDef mod, string name)
{
GetNameScope(mod).AddPreservedName(name);
}
public void AddPreservedName(TypeDef typeDef, string name) public void AddPreservedName(TypeDef typeDef, string name)
{ {
GetNameScope(typeDef.Module).AddPreservedName(name); GetNameScope(typeDef.Module).AddPreservedName(name);
@ -66,12 +61,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
GetNameScope(_namespaceScope).AddPreservedName(name); GetNameScope(_namespaceScope).AddPreservedName(name);
} }
public string GetNewName(ModuleDef mod, string originalName)
{
return GetDefaultNewName(this, originalName);
}
private string GetDefaultNewName(object scope, string originName) private string GetDefaultNewName(object scope, string originName)
{ {
return GetNameScope(scope).GetNewName(originName, false); return GetNameScope(scope).GetNewName(originName, false);
@ -96,7 +85,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
return GetDefaultNewName(methodDef.DeclaringType, originalName); return GetDefaultNewName(methodDef.DeclaringType, originalName);
} }
public string GetNewName(ParamDef param, string originalName) public virtual string GetNewName(ParamDef param, string originalName)
{ {
return "1"; return "1";
} }

View File

@ -11,7 +11,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
{ {
public static INameMaker CreateDebugNameMaker() public static INameMaker CreateDebugNameMaker()
{ {
return new TestNameMaker(); return new DebugNameMaker();
} }
public static INameMaker CreateNameMakerBaseASCIICharSet() public static INameMaker CreateNameMakerBaseASCIICharSet()

View File

@ -81,9 +81,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
private class RenameMappingAssembly private class RenameMappingAssembly
{ {
public RenameStatus status; public string assName;
public string oldAssName;
public string newAssName;
public Dictionary<string, RenameMappingType> types = new Dictionary<string, RenameMappingType>(); public Dictionary<string, RenameMappingType> types = new Dictionary<string, RenameMappingType>();
} }
@ -113,13 +111,8 @@ namespace Obfuz.ObfusPasses.SymbolObfus
foreach (ModuleDef mod in assemblies) foreach (ModuleDef mod in assemblies)
{ {
string name = mod.Assembly.Name; string name = mod.Assembly.Name;
nameMaker.AddPreservedName(mod, name);
RenameMappingAssembly rma = _assemblies.GetValueOrDefault(name); RenameMappingAssembly rma = _assemblies.GetValueOrDefault(name);
if (rma != null && rma.status == RenameStatus.Renamed)
{
nameMaker.AddPreservedName(mod, rma.newAssName);
}
_modRenames.Add(mod, new RenameRecord _modRenames.Add(mod, new RenameRecord
{ {
@ -270,12 +263,9 @@ namespace Obfuz.ObfusPasses.SymbolObfus
} }
var assemblyName = ele.Attributes["name"].Value; var assemblyName = ele.Attributes["name"].Value;
var newAssemblyName = ele.Attributes["newName"].Value;
var rma = new RenameMappingAssembly var rma = new RenameMappingAssembly
{ {
oldAssName = assemblyName, assName = assemblyName,
newAssName = newAssemblyName,
status = (RenameStatus)System.Enum.Parse(typeof(RenameStatus), ele.Attributes["status"].Value),
}; };
foreach (XmlNode node in ele.ChildNodes) foreach (XmlNode node in ele.ChildNodes)
{ {
@ -408,8 +398,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
RenameRecord record = kvp.Value; RenameRecord record = kvp.Value;
var assemblyNode = doc.CreateElement("assembly"); var assemblyNode = doc.CreateElement("assembly");
assemblyNode.SetAttribute("name", mod.Assembly.Name); assemblyNode.SetAttribute("name", mod.Assembly.Name);
assemblyNode.SetAttribute("newName", record.status == RenameStatus.Renamed ? record.newName : "");
assemblyNode.SetAttribute("status", record.status.ToString());
foreach (TypeDef type in mod.GetTypes()) foreach (TypeDef type in mod.GetTypes())
{ {
WriteTypeMapping(assemblyNode, type); WriteTypeMapping(assemblyNode, type);
@ -418,14 +406,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus
} }
foreach (RenameMappingAssembly ass in _assemblies.Values) foreach (RenameMappingAssembly ass in _assemblies.Values)
{ {
if (_modRenames.Keys.Any(m => m.Assembly.Name == ass.oldAssName)) if (_modRenames.Keys.Any(m => m.Assembly.Name == ass.assName))
{ {
continue; continue;
} }
var assemblyNode = doc.CreateElement("assembly"); var assemblyNode = doc.CreateElement("assembly");
assemblyNode.SetAttribute("name", ass.oldAssName); assemblyNode.SetAttribute("name", ass.assName);
assemblyNode.SetAttribute("newName", ass.status == RenameStatus.Renamed ? ass.newAssName : "");
assemblyNode.SetAttribute("status", ass.status.ToString());
foreach (var e in ass.types) foreach (var e in ass.types)
{ {
WriteTypeMapping(assemblyNode, e.Key, e.Value); WriteTypeMapping(assemblyNode, e.Key, e.Value);
@ -678,17 +664,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
record.newName = newName; record.newName = newName;
} }
public bool TryGetExistRenameMapping(ModuleDef mod, out string newName)
{
if (_modRenames.TryGetValue(mod, out var record) && record.renameMappingData != null)
{
newName = ((RenameMappingAssembly)record.renameMappingData).newAssName;
return true;
}
newName = null;
return false;
}
public bool TryGetExistRenameMapping(TypeDef type, out string newNamespace, out string newName) public bool TryGetExistRenameMapping(TypeDef type, out string newNamespace, out string newName)
{ {
if (_typeRenames.TryGetValue(type, out var record) && record.renameMappingData != null) if (_typeRenames.TryGetValue(type, out var record) && record.renameMappingData != null)

View File

@ -586,27 +586,27 @@ namespace Obfuz.ObfusPasses.SymbolObfus
Debug.Log("Rename events begin"); Debug.Log("Rename events begin");
} }
private void Rename(ModuleDef mod) //private void Rename(ModuleDef mod)
{ //{
string oldName = mod.Assembly.Name; // string oldName = mod.Assembly.Name;
string newName = _renameRecordMap.TryGetExistRenameMapping(mod, out var n) ? n : _nameMaker.GetNewName(mod, oldName); // string newName = _renameRecordMap.TryGetExistRenameMapping(mod, out var n) ? n : _nameMaker.GetNewName(mod, oldName);
_renameRecordMap.AddRename(mod, newName); // _renameRecordMap.AddRename(mod, newName);
mod.Assembly.Name = newName; // mod.Assembly.Name = newName;
mod.Name = $"{newName}.dll"; // mod.Name = $"{newName}.dll";
//Debug.Log($"rename module. oldName:{oldName} newName:{newName}"); // //Debug.Log($"rename module. oldName:{oldName} newName:{newName}");
foreach (AssemblyReferenceInfo ass in GetReferenceMeAssemblies(mod)) // foreach (AssemblyReferenceInfo ass in GetReferenceMeAssemblies(mod))
{ // {
foreach (AssemblyRef assRef in ass.module.GetAssemblyRefs()) // foreach (AssemblyRef assRef in ass.module.GetAssemblyRefs())
{ // {
if (assRef.Name == oldName) // if (assRef.Name == oldName)
{ // {
_renameRecordMap.AddRename(mod, newName); // _renameRecordMap.AddRename(mod, newName);
assRef.Name = newName; // assRef.Name = newName;
// Debug.Log($"rename assembly:{ass.name} ref oldName:{oldName} newName:{newName}"); // // Debug.Log($"rename assembly:{ass.name} ref oldName:{oldName} newName:{newName}");
} // }
} // }
} // }
} //}
private void Rename(TypeDef type, RefTypeDefMetas refTypeDefMeta) private void Rename(TypeDef type, RefTypeDefMetas refTypeDefMeta)
{ {