Encryption改名为EncryptionVM
parent
f0818e3df1
commit
fcb2cb1d89
|
@ -1,4 +1,4 @@
|
|||
namespace Obfuz.Encryption
|
||||
namespace Obfuz.EncryptionVM
|
||||
{
|
||||
public class EncryptionInstructionWithOpCode
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
namespace Obfuz.Encryption
|
||||
namespace Obfuz.EncryptionVM
|
||||
{
|
||||
public interface IEncryptionInstruction
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
namespace Obfuz.Encryption.Instructions
|
||||
namespace Obfuz.EncryptionVM.Instructions
|
||||
{
|
||||
public class AddInstruction : EncryptionInstructionBase
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
namespace Obfuz.Encryption.Instructions
|
||||
namespace Obfuz.EncryptionVM.Instructions
|
||||
{
|
||||
public class BitRotateInstruction : EncryptionInstructionBase
|
||||
{
|
|
@ -3,7 +3,7 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Obfuz.Encryption.Instructions
|
||||
namespace Obfuz.EncryptionVM.Instructions
|
||||
{
|
||||
|
||||
public class EncryptFunction : EncryptionInstructionBase
|
|
@ -1,4 +1,4 @@
|
|||
namespace Obfuz.Encryption.Instructions
|
||||
namespace Obfuz.EncryptionVM.Instructions
|
||||
{
|
||||
public class XorInstruction : EncryptionInstructionBase
|
||||
{
|
|
@ -1,13 +1,13 @@
|
|||
namespace Obfuz.Encryption
|
||||
namespace Obfuz.EncryptionVM
|
||||
{
|
||||
public class EncryptionVirtualMachine
|
||||
public class VirtualMachine
|
||||
{
|
||||
public const int SecretKeyLength = 1024;
|
||||
|
||||
public readonly int[] secretKey;
|
||||
public readonly EncryptionInstructionWithOpCode[] opCodes;
|
||||
|
||||
public EncryptionVirtualMachine(int[] secretKey, EncryptionInstructionWithOpCode[] opCodes)
|
||||
public VirtualMachine(int[] secretKey, EncryptionInstructionWithOpCode[] opCodes)
|
||||
{
|
||||
this.secretKey = secretKey;
|
||||
this.opCodes = opCodes;
|
|
@ -1,21 +1,19 @@
|
|||
using Obfuz.Encryption.Instructions;
|
||||
using Obfuz.EncryptionVM.Instructions;
|
||||
using Obfuz.Utils;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
namespace Obfuz.Encryption
|
||||
namespace Obfuz.EncryptionVM
|
||||
{
|
||||
public class EncryptionVirtualMachineCreator
|
||||
public class VirtualMachineCreator
|
||||
{
|
||||
private readonly int[] _vmGenerationSecretKey;
|
||||
private readonly byte[] _encryptionSecretKey;
|
||||
private readonly IRandom _random;
|
||||
|
||||
public const int CodeGenerationSecretKeyLength = 1024;
|
||||
|
||||
public EncryptionVirtualMachineCreator(string vmGenerationSecretKey, byte[] encryptionSecretKey)
|
||||
public VirtualMachineCreator(string vmGenerationSecretKey, byte[] encryptionSecretKey)
|
||||
{
|
||||
_vmGenerationSecretKey = KeyGenerator.ConvertToIntKey(KeyGenerator.GenerateKey(vmGenerationSecretKey, CodeGenerationSecretKeyLength));
|
||||
_encryptionSecretKey = encryptionSecretKey;
|
||||
_random = new RandomWithKey(encryptionSecretKey, 0);
|
||||
}
|
||||
|
||||
|
@ -36,12 +34,12 @@ namespace Obfuz.Encryption
|
|||
|
||||
private EncryptionInstructionWithOpCode CreateEncryptOpCode(ushort code)
|
||||
{
|
||||
IEncryptionInstruction inst = CreateRandomInstruction(EncryptionVirtualMachine.SecretKeyLength / sizeof(int));
|
||||
IEncryptionInstruction inst = CreateRandomInstruction(VirtualMachine.SecretKeyLength / sizeof(int));
|
||||
Assert.AreEqual(1234, inst.Decrypt(inst.Encrypt(1234, _vmGenerationSecretKey, 0x12345678), _vmGenerationSecretKey, 0x12345678));
|
||||
return new EncryptionInstructionWithOpCode(code, inst);
|
||||
}
|
||||
|
||||
public EncryptionVirtualMachine CreateVirtualMachine(int opCodeCount)
|
||||
public VirtualMachine CreateVirtualMachine(int opCodeCount)
|
||||
{
|
||||
Assert.IsTrue(opCodeCount > 0);
|
||||
Assert.AreEqual(0, opCodeCount & (opCodeCount - 1));
|
||||
|
@ -50,7 +48,7 @@ namespace Obfuz.Encryption
|
|||
{
|
||||
opCodes[i] = CreateEncryptOpCode((ushort)i);
|
||||
}
|
||||
return new EncryptionVirtualMachine(_vmGenerationSecretKey, opCodes);
|
||||
return new VirtualMachine(_vmGenerationSecretKey, opCodes);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,19 +3,18 @@ using System.Collections.Generic;
|
|||
using System.Linq.Expressions;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using UnityEngine.Assertions;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Obfuz.Encryption
|
||||
namespace Obfuz.EncryptionVM
|
||||
{
|
||||
|
||||
public class EncryptionVirtualMachineSimulator : EncryptorBase
|
||||
public class VirtualMachineSimulator : EncryptorBase
|
||||
{
|
||||
private readonly EncryptionInstructionWithOpCode[] _opCodes;
|
||||
private readonly int[] _secretKey;
|
||||
|
||||
public EncryptionVirtualMachineSimulator(EncryptionVirtualMachine vm)
|
||||
public VirtualMachineSimulator(VirtualMachine vm)
|
||||
{
|
||||
_opCodes = vm.opCodes;
|
||||
_secretKey = vm.secretKey;
|
|
@ -2,7 +2,7 @@
|
|||
using dnlib.Protection;
|
||||
using Obfuz.Data;
|
||||
using Obfuz.Emit;
|
||||
using Obfuz.Encryption;
|
||||
using Obfuz.EncryptionVM;
|
||||
using Obfuz.ObfusPasses;
|
||||
using Obfuz.ObfusPasses.CleanUp;
|
||||
using Obfuz.Utils;
|
||||
|
@ -41,7 +41,7 @@ namespace Obfuz
|
|||
string obfuscatedAssemblyOutputDir,
|
||||
List<IObfuscationPass> obfuscationPasses, string rawSecretKey, int globalRandomSeed, string encryptionVmSecretKey)
|
||||
{
|
||||
_secretKey = KeyGenerator.GenerateKey(rawSecretKey, EncryptionVirtualMachine.SecretKeyLength);
|
||||
_secretKey = KeyGenerator.GenerateKey(rawSecretKey, VirtualMachine.SecretKeyLength);
|
||||
_globalRandomSeed = globalRandomSeed;
|
||||
_encryptionVmSecretKey = encryptionVmSecretKey;
|
||||
|
||||
|
@ -67,9 +67,9 @@ namespace Obfuz
|
|||
|
||||
private IEncryptor CreateEncryptionVirtualMachine()
|
||||
{
|
||||
var vmCreator = new EncryptionVirtualMachineCreator(_encryptionVmSecretKey, _secretKey);
|
||||
var vmCreator = new VirtualMachineCreator(_encryptionVmSecretKey, _secretKey);
|
||||
var vm = vmCreator.CreateVirtualMachine(1);
|
||||
return new EncryptionVirtualMachineSimulator(vm);
|
||||
return new VirtualMachineSimulator(vm);
|
||||
}
|
||||
|
||||
private void OnPreObfuscation()
|
||||
|
|
Loading…
Reference in New Issue