移除Module Rename相关代码
parent
357de094bf
commit
07afb0f7ef
|
@ -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}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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);
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue