符号混淆开启debug情况下不读取但写入symbol-mapping-debug.xml文件,这样LinkXmlProcess中也能正确映射到混淆后的名字
parent
5ce7b9b5f4
commit
c173efe689
|
@ -87,6 +87,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly string _mappingFile;
|
private readonly string _mappingFile;
|
||||||
|
private readonly bool _debug;
|
||||||
private readonly Dictionary<string, RenameMappingAssembly> _assemblies = new Dictionary<string, RenameMappingAssembly>();
|
private readonly Dictionary<string, RenameMappingAssembly> _assemblies = new Dictionary<string, RenameMappingAssembly>();
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,9 +100,10 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
private readonly Dictionary<VirtualMethodGroup, RenameRecord> _virtualMethodGroups = new Dictionary<VirtualMethodGroup, RenameRecord>();
|
private readonly Dictionary<VirtualMethodGroup, RenameRecord> _virtualMethodGroups = new Dictionary<VirtualMethodGroup, RenameRecord>();
|
||||||
|
|
||||||
|
|
||||||
public RenameRecordMap(string mappingFile)
|
public RenameRecordMap(string mappingFile, bool debug)
|
||||||
{
|
{
|
||||||
_mappingFile = mappingFile;
|
_mappingFile = mappingFile;
|
||||||
|
_debug = debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(List<ModuleDef> assemblies, INameMaker nameMaker)
|
public void Init(List<ModuleDef> assemblies, INameMaker nameMaker)
|
||||||
|
@ -227,6 +229,11 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (_debug)
|
||||||
|
{
|
||||||
|
Debug.Log($"skip loading debug mapping file: {Path.GetFullPath(mappingFile)}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
var doc = new XmlDocument();
|
var doc = new XmlDocument();
|
||||||
doc.Load(mappingFile);
|
doc.Load(mappingFile);
|
||||||
var root = doc.DocumentElement;
|
var root = doc.DocumentElement;
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
_useConsistentNamespaceObfuscation = settings.useConsistentNamespaceObfuscation;
|
_useConsistentNamespaceObfuscation = settings.useConsistentNamespaceObfuscation;
|
||||||
_mappingXmlPath = settings.symbolMappingFile;
|
_mappingXmlPath = settings.symbolMappingFile;
|
||||||
_obfuscationRuleFiles = settings.ruleFiles.ToList();
|
_obfuscationRuleFiles = settings.ruleFiles.ToList();
|
||||||
_renameRecordMap = new RenameRecordMap(settings.debug ? null : settings.symbolMappingFile);
|
_renameRecordMap = new RenameRecordMap(settings.symbolMappingFile, settings.debug);
|
||||||
_virtualMethodGroupCalculator = new VirtualMethodGroupCalculator();
|
_virtualMethodGroupCalculator = new VirtualMethodGroupCalculator();
|
||||||
_nameMaker = settings.debug ? NameMakerFactory.CreateDebugNameMaker() : NameMakerFactory.CreateNameMakerBaseASCIICharSet(settings.obfuscatedNamePrefix);
|
_nameMaker = settings.debug ? NameMakerFactory.CreateDebugNameMaker() : NameMakerFactory.CreateNameMakerBaseASCIICharSet(settings.obfuscatedNamePrefix);
|
||||||
|
|
||||||
|
|
|
@ -33,12 +33,20 @@ namespace Obfuz.Settings
|
||||||
[Tooltip("symbol mapping file path")]
|
[Tooltip("symbol mapping file path")]
|
||||||
public string symbolMappingFile = "Assets/Obfuz/SymbolObfus/symbol-mapping.xml";
|
public string symbolMappingFile = "Assets/Obfuz/SymbolObfus/symbol-mapping.xml";
|
||||||
|
|
||||||
|
[Tooltip("debug symbol mapping file path, used for debugging purposes")]
|
||||||
|
public string debugSymbolMappingFile = "Assets/Obfuz/SymbolObfus/symbol-mapping-debug.xml";
|
||||||
|
|
||||||
[Tooltip("rule files")]
|
[Tooltip("rule files")]
|
||||||
public string[] ruleFiles;
|
public string[] ruleFiles;
|
||||||
|
|
||||||
[Tooltip("custom rename policy types")]
|
[Tooltip("custom rename policy types")]
|
||||||
public string[] customRenamePolicyTypes;
|
public string[] customRenamePolicyTypes;
|
||||||
|
|
||||||
|
public string GetSymbolMappingFile()
|
||||||
|
{
|
||||||
|
return debug ? debugSymbolMappingFile : symbolMappingFile;
|
||||||
|
}
|
||||||
|
|
||||||
public SymbolObfuscationSettingsFacade ToFacade()
|
public SymbolObfuscationSettingsFacade ToFacade()
|
||||||
{
|
{
|
||||||
return new SymbolObfuscationSettingsFacade
|
return new SymbolObfuscationSettingsFacade
|
||||||
|
@ -46,7 +54,7 @@ namespace Obfuz.Settings
|
||||||
debug = debug,
|
debug = debug,
|
||||||
obfuscatedNamePrefix = obfuscatedNamePrefix,
|
obfuscatedNamePrefix = obfuscatedNamePrefix,
|
||||||
useConsistentNamespaceObfuscation = useConsistentNamespaceObfuscation,
|
useConsistentNamespaceObfuscation = useConsistentNamespaceObfuscation,
|
||||||
symbolMappingFile = symbolMappingFile,
|
symbolMappingFile = GetSymbolMappingFile(),
|
||||||
ruleFiles = ruleFiles?.ToList() ?? new List<string>(),
|
ruleFiles = ruleFiles?.ToList() ?? new List<string>(),
|
||||||
customRenamePolicyTypes = customRenamePolicyTypes?.Select(typeName => ReflectionUtil.FindUniqueTypeInCurrentAppDomain(typeName)).ToList() ?? new List<Type>(),
|
customRenamePolicyTypes = customRenamePolicyTypes?.Select(typeName => ReflectionUtil.FindUniqueTypeInCurrentAppDomain(typeName)).ToList() ?? new List<Type>(),
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace Obfuz.Unity
|
||||||
public static string GenerateAdditionalLinkXmlFile(BuildTarget target)
|
public static string GenerateAdditionalLinkXmlFile(BuildTarget target)
|
||||||
{
|
{
|
||||||
ObfuzSettings settings = ObfuzSettings.Instance;
|
ObfuzSettings settings = ObfuzSettings.Instance;
|
||||||
string symbolMappingFile = settings.symbolObfusSettings.symbolMappingFile;
|
string symbolMappingFile = settings.symbolObfusSettings.GetSymbolMappingFile();
|
||||||
if (!File.Exists(symbolMappingFile))
|
if (!File.Exists(symbolMappingFile))
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"Symbol mapping file not found: {symbolMappingFile}. Skipping link.xml generation.");
|
Debug.LogWarning($"Symbol mapping file not found: {symbolMappingFile}. Skipping link.xml generation.");
|
||||||
|
|
Loading…
Reference in New Issue