change: Obfuscator write intermediate obfuscated assembly to temp directory before write to obfuscated assembly directory
parent
f265022d0c
commit
8cdd69fd45
|
@ -21,6 +21,7 @@ namespace Obfuz
|
|||
|
||||
public class Obfuscator
|
||||
{
|
||||
private readonly string _obfuscatedAssemblyTempOutputPath;
|
||||
private readonly string _obfuscatedAssemblyOutputPath;
|
||||
|
||||
private readonly List<string> _assembliesToObfuscate;
|
||||
|
@ -58,6 +59,7 @@ namespace Obfuz
|
|||
_assembliesToObfuscate = builder.AssembliesToObfuscate;
|
||||
_nonObfuscatedButReferencingObfuscatedAssemblies = builder.NonObfuscatedButReferencingObfuscatedAssemblies;
|
||||
_obfuscatedAssemblyOutputPath = builder.ObfuscatedAssemblyOutputPath;
|
||||
_obfuscatedAssemblyTempOutputPath = builder.ObfuscatedAssemblyTempOutputPath;
|
||||
_assemblyResolver = new CombinedAssemblyResolver(new PathAssemblyResolver(builder.AssemblySearchPaths.ToArray()), new UnityProjectManagedAssemblyResolver(builder.BuildTarget));
|
||||
|
||||
_passPolicy = new ConfigurablePassPolicy(_assembliesToObfuscate, builder.EnableObfuscationPasses, builder.ObfuscationPassRuleConfigFiles);
|
||||
|
@ -81,9 +83,11 @@ namespace Obfuz
|
|||
{
|
||||
Debug.Log($"Obfuscator Run. begin");
|
||||
FileUtil.RecreateDir(_obfuscatedAssemblyOutputPath);
|
||||
FileUtil.RecreateDir(_obfuscatedAssemblyTempOutputPath);
|
||||
RunPipeline(_pipeline1);
|
||||
_assemblyResolver.InsertFirst(new PathAssemblyResolver(_obfuscatedAssemblyOutputPath));
|
||||
RunPipeline(_pipeline2);
|
||||
FileUtil.CopyDir(_obfuscatedAssemblyTempOutputPath, _obfuscatedAssemblyOutputPath, true);
|
||||
Debug.Log($"Obfuscator Run. end");
|
||||
}
|
||||
|
||||
|
@ -318,7 +322,7 @@ namespace Obfuz
|
|||
foreach (ModuleDef mod in _ctx.allObfuscationRelativeModules)
|
||||
{
|
||||
string assNameWithExt = mod.Name;
|
||||
string outputFile = $"{_obfuscatedAssemblyOutputPath}/{assNameWithExt}";
|
||||
string outputFile = $"{_obfuscatedAssemblyTempOutputPath}/{assNameWithExt}";
|
||||
mod.Write(outputFile);
|
||||
Debug.Log($"save module. name:{mod.Assembly.Name} output:{outputFile}");
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ namespace Obfuz
|
|||
private List<string> _nonObfuscatedButReferencingObfuscatedAssemblies = new List<string>();
|
||||
private List<string> _assemblySearchPaths = new List<string>();
|
||||
|
||||
private string _obfuscatedAssemblyTempOutputPath;
|
||||
private string _obfuscatedAssemblyOutputPath;
|
||||
private List<string> _obfuscationPassRuleConfigFiles;
|
||||
|
||||
|
@ -122,6 +123,12 @@ namespace Obfuz
|
|||
set => _obfuscatedAssemblyOutputPath = value;
|
||||
}
|
||||
|
||||
public string ObfuscatedAssemblyTempOutputPath
|
||||
{
|
||||
get => _obfuscatedAssemblyTempOutputPath;
|
||||
set => _obfuscatedAssemblyTempOutputPath = value;
|
||||
}
|
||||
|
||||
public ObfuscationPassType EnableObfuscationPasses
|
||||
{
|
||||
get => _enabledObfuscationPasses;
|
||||
|
@ -195,6 +202,7 @@ namespace Obfuz
|
|||
_nonObfuscatedButReferencingObfuscatedAssemblies = settings.assemblySettings.nonObfuscatedButReferencingObfuscatedAssemblies.ToList(),
|
||||
_assemblySearchPaths = searchPaths,
|
||||
_obfuscatedAssemblyOutputPath = settings.GetObfuscatedAssemblyOutputPath(target),
|
||||
_obfuscatedAssemblyTempOutputPath = settings.GetObfuscatedAssemblyTempOutputPath(target),
|
||||
_enabledObfuscationPasses = settings.obfuscationPassSettings.enabledPasses,
|
||||
_obfuscationPassRuleConfigFiles = settings.obfuscationPassSettings.ruleFiles.ToList(),
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace Obfuz.Settings
|
|||
public class AssemblySettings
|
||||
{
|
||||
|
||||
[Tooltip("name of assemblies to obfuscate")]
|
||||
[Tooltip("name of assemblies to obfuscate, please don't add 'Obfuz.Runtime'")]
|
||||
public string[] assembliesToObfuscate;
|
||||
|
||||
[Tooltip("name of assemblies not obfuscated but reference assemblies to obfuscated ")]
|
||||
|
@ -23,7 +23,6 @@ namespace Obfuz.Settings
|
|||
[Tooltip("obfuscate Obfuz.Runtime")]
|
||||
public bool obfuscateObfuzRuntime = true;
|
||||
|
||||
|
||||
public List<string> GetAssembliesToObfuscate()
|
||||
{
|
||||
var asses = new List<string>(assembliesToObfuscate);
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.Remoting.Messaging;
|
||||
|
@ -50,6 +51,11 @@ namespace Obfuz.Settings
|
|||
return $"{ObfuzRootDir}/{target}/OriginalAssemblies";
|
||||
}
|
||||
|
||||
public string GetObfuscatedAssemblyTempOutputPath(BuildTarget target)
|
||||
{
|
||||
return $"{ObfuzRootDir}/{target}/TempObfuscatedAssemblies";
|
||||
}
|
||||
|
||||
private static ObfuzSettings s_Instance;
|
||||
|
||||
public static ObfuzSettings Instance
|
||||
|
|
Loading…
Reference in New Issue