移除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
{
public class TestNameMaker : NameMakerBase
public class DebugNameMaker : NameMakerBase
{
private class TestNameScope : NameScopeBase
{
@ -18,5 +19,9 @@ namespace Obfuz.ObfusPasses.SymbolObfus
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
{
void AddPreservedName(ModuleDef mod, string name);
void AddPreservedName(TypeDef typeDef, string name);
void AddPreservedNamespace(TypeDef typeDef, string name);
@ -20,8 +18,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus
void AddPreservedName(EventDef eventDef, string name);
string GetNewName(ModuleDef mod, string originalName);
string GetNewName(TypeDef typeDef, string originalName);
string GetNewNamespace(TypeDef typeDef, string originalNamespace, bool reuse);

View File

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

View File

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

View File

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