重构settings
parent
ce535949aa
commit
d80c83d1e9
|
@ -111,18 +111,18 @@ namespace Obfuz
|
||||||
{
|
{
|
||||||
var builder = new ObfuscatorBuilder
|
var builder = new ObfuscatorBuilder
|
||||||
{
|
{
|
||||||
_secret = settings.secret,
|
_secret = settings.secretSettings.secret,
|
||||||
_secretOutputPath = settings.secretOutputPath,
|
_secretOutputPath = settings.secretSettings.secretOutputPath,
|
||||||
_randomSeed = settings.randomSeed,
|
_randomSeed = settings.secretSettings.randomSeed,
|
||||||
_encryptionVmGenerationSecretKey = settings.encryptionVMSettings.codeGenerationSecret,
|
_encryptionVmGenerationSecretKey = settings.encryptionVMSettings.codeGenerationSecret,
|
||||||
_encryptionVmOpCodeCount = settings.encryptionVMSettings.encryptionOpCodeCount,
|
_encryptionVmOpCodeCount = settings.encryptionVMSettings.encryptionOpCodeCount,
|
||||||
_encryptionVmCodeFile = settings.encryptionVMSettings.codeOutputPath,
|
_encryptionVmCodeFile = settings.encryptionVMSettings.codeOutputPath,
|
||||||
_toObfuscatedAssemblyNames = settings.toObfuscatedAssemblyNames.ToList(),
|
_toObfuscatedAssemblyNames = settings.assemblySettings.toObfuscatedAssemblyNames.ToList(),
|
||||||
_notObfuscatedAssemblyNamesReferencingObfuscated = settings.notObfuscatedAssemblyNamesReferencingObfuscated.ToList(),
|
_notObfuscatedAssemblyNamesReferencingObfuscated = settings.assemblySettings.notObfuscatedAssemblyNamesReferencingObfuscated.ToList(),
|
||||||
_assemblySearchDirs = settings.extraAssemblySearchDirs.ToList(),
|
_assemblySearchDirs = settings.assemblySettings.extraAssemblySearchDirs.ToList(),
|
||||||
_obfuscatedAssemblyOutputDir = settings.GetObfuscatedAssemblyOutputDir(target),
|
_obfuscatedAssemblyOutputDir = settings.GetObfuscatedAssemblyOutputDir(target),
|
||||||
};
|
};
|
||||||
ObfuscationPassType obfuscationPasses = settings.enabledObfuscationPasses;
|
ObfuscationPassType obfuscationPasses = settings.obfuscationPassSettings.enabledPasses;
|
||||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncrypt))
|
if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncrypt))
|
||||||
{
|
{
|
||||||
builder.AddPass(new ConstEncryptPass(settings.constEncryptSettings));
|
builder.AddPass(new ConstEncryptPass(settings.constEncryptSettings));
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Obfuz.Settings
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class AssemblySettings
|
||||||
|
{
|
||||||
|
|
||||||
|
[Tooltip("name of assemblies to obfuscated")]
|
||||||
|
public string[] toObfuscatedAssemblyNames;
|
||||||
|
|
||||||
|
[Tooltip("name of assemblies not obfuscated but reference assemblies to obfuscated ")]
|
||||||
|
public string[] notObfuscatedAssemblyNamesReferencingObfuscated;
|
||||||
|
|
||||||
|
[Tooltip("extra assembly search dirs")]
|
||||||
|
public string[] extraAssemblySearchDirs;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
using Obfuz.ObfusPasses;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Obfuz.Settings
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class ObfuscationPassSettings
|
||||||
|
{
|
||||||
|
[Tooltip("enable obfuscation pass")]
|
||||||
|
public ObfuscationPassType enabledPasses = ObfuscationPassType.All;
|
||||||
|
|
||||||
|
[Tooltip("config xml files")]
|
||||||
|
public string[] configFiles;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,3 @@
|
||||||
using Obfuz.ObfusPasses;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.Remoting.Messaging;
|
using System.Runtime.Remoting.Messaging;
|
||||||
|
@ -9,31 +8,20 @@ using UnityEngine;
|
||||||
namespace Obfuz.Settings
|
namespace Obfuz.Settings
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public class ObfuzSettings : ScriptableObject
|
public class ObfuzSettings : ScriptableObject
|
||||||
{
|
{
|
||||||
[Tooltip("enable Obfuz")]
|
[Tooltip("enable Obfuz")]
|
||||||
public bool enable = true;
|
public bool enable = true;
|
||||||
|
|
||||||
[Tooltip("name of assemblies to obfuscated")]
|
[Tooltip("assembly settings")]
|
||||||
public string[] toObfuscatedAssemblyNames;
|
public AssemblySettings assemblySettings;
|
||||||
|
|
||||||
[Tooltip("name of assemblies not obfuscated but reference assemblies to obfuscated ")]
|
[Tooltip("obfuscation pass settings")]
|
||||||
public string[] notObfuscatedAssemblyNamesReferencingObfuscated;
|
public ObfuscationPassSettings obfuscationPassSettings;
|
||||||
|
|
||||||
[Tooltip("extra assembly search dirs")]
|
[Tooltip("secret settings")]
|
||||||
public string[] extraAssemblySearchDirs;
|
public SecretSettings secretSettings;
|
||||||
|
|
||||||
[Tooltip("enable obfuscation pass")]
|
|
||||||
public ObfuscationPassType enabledObfuscationPasses = ObfuscationPassType.All;
|
|
||||||
|
|
||||||
[Tooltip("secret key")]
|
|
||||||
public string secret = "Code Philosophy";
|
|
||||||
|
|
||||||
[Tooltip("secret key save path")]
|
|
||||||
public string secretOutputPath = $"Assets/Obfuz/secret.bytes";
|
|
||||||
|
|
||||||
[Tooltip("global random seed")]
|
|
||||||
public int randomSeed = 0;
|
|
||||||
|
|
||||||
[Tooltip("encryption virtual machine settings")]
|
[Tooltip("encryption virtual machine settings")]
|
||||||
public EncryptionVMSettings encryptionVMSettings;
|
public EncryptionVMSettings encryptionVMSettings;
|
||||||
|
|
|
@ -29,15 +29,9 @@ namespace Obfuz.Settings
|
||||||
|
|
||||||
private SerializedObject _serializedObject;
|
private SerializedObject _serializedObject;
|
||||||
private SerializedProperty _enable;
|
private SerializedProperty _enable;
|
||||||
private SerializedProperty _toObfuscatedAssemblyNames;
|
private SerializedProperty _assemblySettings;
|
||||||
private SerializedProperty _notObfuscatedAssemblyNamesReferencingObfuscated;
|
private SerializedProperty _obfuscationPassSettings;
|
||||||
private SerializedProperty _extraAssemblySearchDirs;
|
private SerializedProperty _secretSettings;
|
||||||
|
|
||||||
private SerializedProperty _enabledObfuscationPasses;
|
|
||||||
private SerializedProperty _secret;
|
|
||||||
private SerializedProperty _secretOutputPath;
|
|
||||||
private SerializedProperty _randomSeed;
|
|
||||||
|
|
||||||
private SerializedProperty _encryptionVMSettings;
|
private SerializedProperty _encryptionVMSettings;
|
||||||
|
|
||||||
private SerializedProperty _symbolObfusSettings;
|
private SerializedProperty _symbolObfusSettings;
|
||||||
|
@ -66,14 +60,9 @@ namespace Obfuz.Settings
|
||||||
_serializedObject?.Dispose();
|
_serializedObject?.Dispose();
|
||||||
_serializedObject = new SerializedObject(setting);
|
_serializedObject = new SerializedObject(setting);
|
||||||
_enable = _serializedObject.FindProperty("enable");
|
_enable = _serializedObject.FindProperty("enable");
|
||||||
_toObfuscatedAssemblyNames = _serializedObject.FindProperty("toObfuscatedAssemblyNames");
|
_assemblySettings = _serializedObject.FindProperty("assemblySettings");
|
||||||
_notObfuscatedAssemblyNamesReferencingObfuscated = _serializedObject.FindProperty("notObfuscatedAssemblyNamesReferencingObfuscated");
|
_obfuscationPassSettings = _serializedObject.FindProperty("obfuscationPassSettings");
|
||||||
_extraAssemblySearchDirs = _serializedObject.FindProperty("extraAssemblySearchDirs");
|
_secretSettings = _serializedObject.FindProperty("secretSettings");
|
||||||
|
|
||||||
_enabledObfuscationPasses = _serializedObject.FindProperty("enabledObfuscationPasses");
|
|
||||||
_secret = _serializedObject.FindProperty("secret");
|
|
||||||
_secretOutputPath = _serializedObject.FindProperty("secretOutputPath");
|
|
||||||
_randomSeed = _serializedObject.FindProperty("randomSeed");
|
|
||||||
|
|
||||||
_encryptionVMSettings = _serializedObject.FindProperty("encryptionVMSettings");
|
_encryptionVMSettings = _serializedObject.FindProperty("encryptionVMSettings");
|
||||||
|
|
||||||
|
@ -93,14 +82,9 @@ namespace Obfuz.Settings
|
||||||
EditorGUI.BeginChangeCheck();
|
EditorGUI.BeginChangeCheck();
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(_enable);
|
EditorGUILayout.PropertyField(_enable);
|
||||||
EditorGUILayout.PropertyField(_toObfuscatedAssemblyNames);
|
EditorGUILayout.PropertyField(_assemblySettings);
|
||||||
EditorGUILayout.PropertyField(_notObfuscatedAssemblyNamesReferencingObfuscated);
|
EditorGUILayout.PropertyField(_obfuscationPassSettings);
|
||||||
EditorGUILayout.PropertyField(_extraAssemblySearchDirs);
|
EditorGUILayout.PropertyField(_secretSettings);
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(_enabledObfuscationPasses);
|
|
||||||
EditorGUILayout.PropertyField(_secret);
|
|
||||||
EditorGUILayout.PropertyField(_secretOutputPath);
|
|
||||||
EditorGUILayout.PropertyField(_randomSeed);
|
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(_encryptionVMSettings);
|
EditorGUILayout.PropertyField(_encryptionVMSettings);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Obfuz.Settings
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class SecretSettings
|
||||||
|
{
|
||||||
|
|
||||||
|
[Tooltip("secret key")]
|
||||||
|
public string secret = "Code Philosophy";
|
||||||
|
|
||||||
|
[Tooltip("secret key save path")]
|
||||||
|
public string secretOutputPath = $"Assets/Obfuz/secret.bytes";
|
||||||
|
|
||||||
|
[Tooltip("random seed")]
|
||||||
|
public int randomSeed = 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -115,7 +115,7 @@ namespace Obfuz.Unity
|
||||||
Obfuscator obfuz = obfuscatorBuilder.Build();
|
Obfuscator obfuz = obfuscatorBuilder.Build();
|
||||||
obfuz.Run();
|
obfuz.Run();
|
||||||
|
|
||||||
foreach (var dllName in settings.toObfuscatedAssemblyNames)
|
foreach (var dllName in settings.assemblySettings.toObfuscatedAssemblyNames)
|
||||||
{
|
{
|
||||||
string src = $"{obfuscatorBuilder.ObfuscatedAssemblyOutputDir}/{dllName}.dll";
|
string src = $"{obfuscatorBuilder.ObfuscatedAssemblyOutputDir}/{dllName}.dll";
|
||||||
string dst = $"{scriptAssembliesPath}/{dllName}.dll";
|
string dst = $"{scriptAssembliesPath}/{dllName}.dll";
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace Obfuz.Unity
|
||||||
[MenuItem("Obfuz/SaveSecretFile", priority = 63)]
|
[MenuItem("Obfuz/SaveSecretFile", priority = 63)]
|
||||||
public static void SaveSecretFile()
|
public static void SaveSecretFile()
|
||||||
{
|
{
|
||||||
ObfuzSettings settings = ObfuzSettings.Instance;
|
SecretSettings settings = ObfuzSettings.Instance.secretSettings;
|
||||||
|
|
||||||
var secretBytes = KeyGenerator.GenerateKey(settings.secret, VirtualMachine.SecretKeyLength);
|
var secretBytes = KeyGenerator.GenerateKey(settings.secret, VirtualMachine.SecretKeyLength);
|
||||||
Obfuscator.SaveKey(secretBytes, settings.secretOutputPath);
|
Obfuscator.SaveKey(secretBytes, settings.secretOutputPath);
|
||||||
|
|
Loading…
Reference in New Issue