2025-05-30 13:32:29 +08:00
|
|
|
|
using Obfuz.Utils;
|
2025-05-28 09:25:09 +08:00
|
|
|
|
using System;
|
2025-05-21 09:23:29 +08:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace Obfuz.Settings
|
|
|
|
|
{
|
2025-05-23 12:47:57 +08:00
|
|
|
|
public class SymbolObfuscationSettingsFacade
|
|
|
|
|
{
|
|
|
|
|
public bool debug;
|
|
|
|
|
public string obfuscatedNamePrefix;
|
|
|
|
|
public bool useConsistentNamespaceObfuscation;
|
2025-06-06 22:57:28 +08:00
|
|
|
|
public bool keepUnknownSymbolInSymbolMappingFile;
|
2025-05-23 12:47:57 +08:00
|
|
|
|
public string symbolMappingFile;
|
|
|
|
|
public List<string> ruleFiles;
|
2025-05-28 09:25:09 +08:00
|
|
|
|
public List<Type> customRenamePolicyTypes;
|
2025-05-23 12:47:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
2025-05-21 09:23:29 +08:00
|
|
|
|
[Serializable]
|
|
|
|
|
public class SymbolObfuscationSettings
|
|
|
|
|
{
|
|
|
|
|
public bool debug;
|
|
|
|
|
|
|
|
|
|
[Tooltip("prefix for obfuscated name to avoid name confliction with original name")]
|
|
|
|
|
public string obfuscatedNamePrefix = "$";
|
|
|
|
|
|
|
|
|
|
[Tooltip("obfuscate same namespace to one name")]
|
|
|
|
|
public bool useConsistentNamespaceObfuscation = true;
|
|
|
|
|
|
2025-06-06 22:57:28 +08:00
|
|
|
|
[Tooltip("keep unknown symbol in symbol mapping file, if false, unknown symbol will be removed from mapping file")]
|
|
|
|
|
public bool keepUnknownSymbolInSymbolMappingFile = true;
|
|
|
|
|
|
2025-05-21 09:23:29 +08:00
|
|
|
|
[Tooltip("symbol mapping file path")]
|
|
|
|
|
public string symbolMappingFile = "Assets/Obfuz/SymbolObfus/symbol-mapping.xml";
|
|
|
|
|
|
2025-05-29 11:39:10 +08:00
|
|
|
|
[Tooltip("debug symbol mapping file path, used for debugging purposes")]
|
|
|
|
|
public string debugSymbolMappingFile = "Assets/Obfuz/SymbolObfus/symbol-mapping-debug.xml";
|
|
|
|
|
|
2025-05-21 09:23:29 +08:00
|
|
|
|
[Tooltip("rule files")]
|
|
|
|
|
public string[] ruleFiles;
|
2025-05-23 12:47:57 +08:00
|
|
|
|
|
2025-05-28 09:25:09 +08:00
|
|
|
|
[Tooltip("custom rename policy types")]
|
|
|
|
|
public string[] customRenamePolicyTypes;
|
|
|
|
|
|
2025-05-29 11:39:10 +08:00
|
|
|
|
public string GetSymbolMappingFile()
|
|
|
|
|
{
|
|
|
|
|
return debug ? debugSymbolMappingFile : symbolMappingFile;
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-23 12:47:57 +08:00
|
|
|
|
public SymbolObfuscationSettingsFacade ToFacade()
|
|
|
|
|
{
|
|
|
|
|
return new SymbolObfuscationSettingsFacade
|
|
|
|
|
{
|
|
|
|
|
debug = debug,
|
|
|
|
|
obfuscatedNamePrefix = obfuscatedNamePrefix,
|
|
|
|
|
useConsistentNamespaceObfuscation = useConsistentNamespaceObfuscation,
|
2025-06-06 22:57:28 +08:00
|
|
|
|
keepUnknownSymbolInSymbolMappingFile = keepUnknownSymbolInSymbolMappingFile,
|
2025-05-29 11:39:10 +08:00
|
|
|
|
symbolMappingFile = GetSymbolMappingFile(),
|
2025-05-28 17:23:24 +08:00
|
|
|
|
ruleFiles = ruleFiles?.ToList() ?? new List<string>(),
|
|
|
|
|
customRenamePolicyTypes = customRenamePolicyTypes?.Select(typeName => ReflectionUtil.FindUniqueTypeInCurrentAppDomain(typeName)).ToList() ?? new List<Type>(),
|
2025-05-23 12:47:57 +08:00
|
|
|
|
};
|
|
|
|
|
}
|
2025-05-21 09:23:29 +08:00
|
|
|
|
}
|
|
|
|
|
}
|