重构,允许通过 enabledObfuscationPasses设置开启哪些Pass
parent
c30abd5977
commit
291bcd7529
|
@ -43,11 +43,6 @@ namespace Obfuz
|
|||
_pipeline.AddPass(pass);
|
||||
}
|
||||
|
||||
//_pipeline.AddPass(new MemoryEncryptionPass());
|
||||
////_pipeline.AddPass(new ProxyCallPass());
|
||||
//_pipeline.AddPass(new ExprObfuscationPass());
|
||||
//_pipeline.AddPass(new DataVirtualizationPass());
|
||||
//_pipeline.AddPass(new RenameSymbolPass());
|
||||
_pipeline.AddPass(new CleanUpInstructionPass());
|
||||
|
||||
|
||||
|
|
|
@ -71,11 +71,27 @@ namespace Obfuz
|
|||
_assemblySearchDirs = settings.extraAssemblySearchDirs.ToList(),
|
||||
_obfuscatedAssemblyOutputDir = settings.GetObfuscatedAssemblyOutputDir(target),
|
||||
};
|
||||
builder.AddPass(new MemoryEncryptionPass());
|
||||
builder.AddPass(new ProxyCallPass());
|
||||
builder.AddPass(new ExprObfuscationPass());
|
||||
builder.AddPass(new DataVirtualizationPass());
|
||||
builder.AddPass(new RenameSymbolPass(settings.ruleFiles.ToList(), settings.mappingFile));
|
||||
ObfuscationPassType obfuscationPasses = settings.enabledObfuscationPasses;
|
||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.MemoryEncryption))
|
||||
{
|
||||
builder.AddPass(new MemoryEncryptionPass());
|
||||
}
|
||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.CallProxy))
|
||||
{
|
||||
builder.AddPass(new ProxyCallPass());
|
||||
}
|
||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncryption))
|
||||
{
|
||||
builder.AddPass(new DataVirtualizationPass());
|
||||
}
|
||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfuscation))
|
||||
{
|
||||
builder.AddPass(new ExprObfuscationPass());
|
||||
}
|
||||
if (obfuscationPasses.HasFlag(ObfuscationPassType.SymbolObfuscation))
|
||||
{
|
||||
builder.AddPass(new RenameSymbolPass(settings.ruleFiles.ToList(), settings.mappingFile));
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ namespace Obfuz
|
|||
private SerializedProperty _enable;
|
||||
private SerializedProperty _toObfuscatedAssemblyNames;
|
||||
private SerializedProperty _notObfuscatedAssemblyNamesReferencingObfuscated;
|
||||
private SerializedProperty _enabledObfuscationPasses;
|
||||
private SerializedProperty _mappingFile;
|
||||
private SerializedProperty _ruleFiles;
|
||||
private SerializedProperty _extraAssemblySearchDirs;
|
||||
|
@ -53,6 +54,7 @@ namespace Obfuz
|
|||
_enable = _serializedObject.FindProperty("enable");
|
||||
_toObfuscatedAssemblyNames = _serializedObject.FindProperty("toObfuscatedAssemblyNames");
|
||||
_notObfuscatedAssemblyNamesReferencingObfuscated = _serializedObject.FindProperty("notObfuscatedAssemblyNamesReferencingObfuscated");
|
||||
_enabledObfuscationPasses = _serializedObject.FindProperty("enabledObfuscationPasses");
|
||||
_mappingFile = _serializedObject.FindProperty("mappingFile");
|
||||
_ruleFiles = _serializedObject.FindProperty("ruleFiles");
|
||||
_extraAssemblySearchDirs = _serializedObject.FindProperty("extraAssemblySearchDirs");
|
||||
|
@ -78,6 +80,7 @@ namespace Obfuz
|
|||
EditorGUILayout.PropertyField(_enable);
|
||||
EditorGUILayout.PropertyField(_toObfuscatedAssemblyNames);
|
||||
EditorGUILayout.PropertyField(_notObfuscatedAssemblyNamesReferencingObfuscated);
|
||||
EditorGUILayout.PropertyField(_enabledObfuscationPasses);
|
||||
EditorGUILayout.PropertyField(_mappingFile);
|
||||
EditorGUILayout.PropertyField(_ruleFiles);
|
||||
EditorGUILayout.PropertyField(_extraAssemblySearchDirs);
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.Remoting.Messaging;
|
||||
|
@ -7,6 +8,24 @@ using UnityEngine;
|
|||
|
||||
namespace Obfuz
|
||||
{
|
||||
[Flags]
|
||||
public enum ObfuscationPassType
|
||||
{
|
||||
None = 0,
|
||||
|
||||
ConstEncryption = 0x1,
|
||||
MemoryEncryption = 0x2,
|
||||
|
||||
SymbolObfuscation = 0x100,
|
||||
CallProxy = 0x200,
|
||||
ExprObfuscation = 0x400,
|
||||
ControlFlowObfuscation = 0x800,
|
||||
|
||||
|
||||
AllDataEncryption = ConstEncryption | MemoryEncryption,
|
||||
AllCodeObfuscation = SymbolObfuscation | CallProxy | ExprObfuscation | ControlFlowObfuscation,
|
||||
All = AllDataEncryption | AllCodeObfuscation,
|
||||
}
|
||||
|
||||
public class ObfuzSettings : ScriptableObject
|
||||
{
|
||||
|
@ -19,6 +38,9 @@ namespace Obfuz
|
|||
[Tooltip("name of assemblies not obfuscated but reference assemblies to obfuscated ")]
|
||||
public string[] notObfuscatedAssemblyNamesReferencingObfuscated;
|
||||
|
||||
[Tooltip("enable obfuscation pass")]
|
||||
public ObfuscationPassType enabledObfuscationPasses = ObfuscationPassType.All;
|
||||
|
||||
[Tooltip("path of mapping.xml")]
|
||||
public string mappingFile = "Assets/Obfuz/mapping.xml";
|
||||
|
||||
|
|
Loading…
Reference in New Issue