Exemplo n.º 1
0
        protected override void DecryptInternal()
        {
            CheckRuntimeFiles();
            IList <DecryptedMethodInfo> decryptedData;
            var serverVersion = NewProcessAssemblyClientFactory.GetServerClrVersion(module);

            using (var client = new NewProcessAssemblyClientFactory(serverVersion).Create(AssemblyServiceType.Generic)) {
                client.Connect();
                client.WaitConnected();

                client.GenericService.LoadUserService(typeof(DynamicMethodsDecrypterService), null);
                client.GenericService.LoadAssembly(module.Location);
                decryptedData = client.GenericService.SendMessage(DynamicMethodsDecrypterService.MSG_DECRYPT_METHODS, new object[] { GetMethodIds() }) as IList <DecryptedMethodInfo>;
                MethodReaderHasDelegateTypeFlag = (bool)client.GenericService.SendMessage(DynamicMethodsDecrypterService.MSG_HAS_DELEGATE_TYPE_FLAG, new object[0]);
            }

            if (decryptedData == null)
            {
                throw new ApplicationException("Unknown return value from dynamic methods decrypter service");
            }

            foreach (var info in decryptedData)
            {
                methodInfos[info.id] = info;
            }
        }
Exemplo n.º 2
0
 static DumpedMethods Decrypt2(ServerClrVersion serverVersion, string filename, byte[] moduleCctorBytes)
 {
     using (var client = new NewProcessAssemblyClientFactory(serverVersion).Create(AssemblyServiceType.MethodDecrypter)) {
         client.Connect();
         client.WaitConnected();
         var info = new DecryptMethodsInfo();
         info.moduleCctorBytes = moduleCctorBytes;
         client.MethodDecrypterService.InstallCompileMethod(info);
         client.MethodDecrypterService.LoadObfuscator(filename);
         return(client.MethodDecrypterService.DecryptMethods());
     }
 }
Exemplo n.º 3
0
 public static DumpedMethods decrypt(string filename, byte[] moduleCctorBytes)
 {
     using (var client = new NewProcessAssemblyClientFactory().create()) {
         client.connect();
         client.waitConnected();
         var info = new DecryptMethodsInfo();
         info.moduleCctorBytes = moduleCctorBytes;
         client.Service.installCompileMethod(info);
         client.Service.loadObfuscator(filename);
         return(client.Service.decryptMethods());
     }
 }
Exemplo n.º 4
0
        public void Initialize(ModuleDef module)
        {
            if (assemblyClient != null)
            {
                return;
            }

            var serverVersion = NewProcessAssemblyClientFactory.GetServerClrVersion(module);

            assemblyClient = new NewProcessAssemblyClientFactory(serverVersion).Create(AssemblyServiceType.Generic);
            assemblyClient.Connect();
            assemblyClient.WaitConnected();

            assemblyClient.GenericService.LoadUserService(typeof(DynocodeService), null);
            assemblyClient.GenericService.LoadAssembly(module.Location);
        }
Exemplo n.º 5
0
 public static DumpedMethods Decrypt(ModuleDef module, byte[] moduleCctorBytes)
 {
     return(Decrypt(NewProcessAssemblyClientFactory.GetServerClrVersion(module), module.Location, moduleCctorBytes));
 }