예제 #1
0
		protected IpcAssemblyServerLoader(AssemblyServiceType serviceType, ServerClrVersion serverVersion) {
			this.serviceType = serviceType;
			assemblyServerFilename = GetServerName(serverVersion);
			ipcName = Utils.RandomName(15, 20);
			ipcUri = Utils.RandomName(15, 20);
			url = string.Format("ipc://{0}/{1}", ipcName, ipcUri);
		}
 protected IpcAssemblyServerLoader(ServerClrVersion serverVersion)
 {
     assemblyServerFilename = getServerName(serverVersion);
     ipcName = Utils.randomName(15, 20);
     ipcUri  = Utils.randomName(15, 20);
     url     = string.Format("ipc://{0}/{1}", ipcName, ipcUri);
 }
 protected IpcAssemblyServerLoader(ServerClrVersion serverVersion)
 {
     assemblyServerFilename = getServerName(serverVersion);
     ipcName = Utils.randomName(15, 20);
     ipcUri = Utils.randomName(15, 20);
     url = string.Format("ipc://{0}/{1}", ipcName, ipcUri);
 }
예제 #4
0
 protected IpcAssemblyServerLoader(AssemblyServiceType serviceType, ServerClrVersion serverVersion)
 {
     this.serviceType       = serviceType;
     assemblyServerFilename = GetServerName(serverVersion);
     ipcName = Utils.RandomName(15, 20);
     ipcUri  = Utils.RandomName(15, 20);
     url     = string.Format("ipc://{0}/{1}", ipcName, ipcUri);
 }
예제 #5
0
 protected IpcAssemblyServerLoader(AssemblyServiceType serviceType, ServerClrVersion serverVersion)
 {
     this.serviceType       = serviceType;
     assemblyServerFilename = GetServerName(serverVersion);
     ipcName = Utils.RandomName(15, 20);
     ipcUri  = Utils.RandomName(15, 20);
     url     = $"ipc://{ipcName}/{ipcUri}";
 }
		public static DumpedMethods Decrypt(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();
			}
		}
 public static DumpedMethods decrypt(ServerClrVersion serverVersion, string filename, byte[] moduleCctorBytes)
 {
     using (var client = new NewProcessAssemblyClientFactory(serverVersion).create()) {
         client.connect();
         client.waitConnected();
         var info = new DecryptMethodsInfo();
         info.moduleCctorBytes = moduleCctorBytes;
         client.Service.installCompileMethod(info);
         client.Service.loadObfuscator(filename);
         return(client.Service.decryptMethods());
     }
 }
예제 #8
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());
     }
 }
예제 #9
0
		static string GetServerName(ServerClrVersion serverVersion) {
			if (serverVersion == ServerClrVersion.CLR_ANY_ANYCPU)
				serverVersion = IntPtr.Size == 4 ? ServerClrVersion.CLR_ANY_x86 : ServerClrVersion.CLR_ANY_x64;
			switch (serverVersion) {
			case ServerClrVersion.CLR_ANY_x86: return "AssemblyServer.exe";
			case ServerClrVersion.CLR_ANY_x64: return "AssemblyServer-x64.exe";
			case ServerClrVersion.CLR_v20_x86: return "AssemblyServer-CLR20.exe";
			case ServerClrVersion.CLR_v20_x64: return "AssemblyServer-CLR20-x64.exe";
			case ServerClrVersion.CLR_v40_x86: return "AssemblyServer-CLR40.exe";
			case ServerClrVersion.CLR_v40_x64: return "AssemblyServer-CLR40-x64.exe";
			default: throw new ArgumentException(string.Format("Invalid server version: {0}", serverVersion));
			}
		}
예제 #10
0
		public static DumpedMethods Decrypt(ServerClrVersion serverVersion, string filename, byte[] moduleCctorBytes) {
			Exception lastEx = null;
			for (int i = 0; i < 5; i++) {
				try {
					return Decrypt2(serverVersion, filename, moduleCctorBytes);
				}
				catch (RemotingException ex) {
					lastEx = ex;
					continue;
				}
			}
			throw lastEx;
		}
예제 #11
0
        public static DumpedMethods Decrypt(ServerClrVersion serverVersion, string filename, byte[] moduleCctorBytes)
        {
            Exception lastEx = null;

            for (int i = 0; i < 5; i++)
            {
                try {
                    return(Decrypt2(serverVersion, filename, moduleCctorBytes));
                }
                catch (RemotingException ex) {
                    lastEx = ex;
                    continue;
                }
            }
            throw lastEx;
        }
예제 #12
0
        static string GetServerName(ServerClrVersion serverVersion)
        {
            if (serverVersion == ServerClrVersion.CLR_ANY_ANYCPU)
            {
                serverVersion = IntPtr.Size == 4 ? ServerClrVersion.CLR_ANY_x86 : ServerClrVersion.CLR_ANY_x64;
            }
            switch (serverVersion)
            {
            case ServerClrVersion.CLR_ANY_x86: return("AssemblyServer.exe");

            case ServerClrVersion.CLR_ANY_x64: return("AssemblyServer-x64.exe");

            case ServerClrVersion.CLR_v20_x86: return("AssemblyServer-CLR20.exe");

            case ServerClrVersion.CLR_v20_x64: return("AssemblyServer-CLR20-x64.exe");

            case ServerClrVersion.CLR_v40_x86: return("AssemblyServer-CLR40.exe");

            case ServerClrVersion.CLR_v40_x64: return("AssemblyServer-CLR40-x64.exe");

            default: throw new ArgumentException($"Invalid server version: {serverVersion}");
            }
        }
		public NewProcessAssemblyServerLoader(AssemblyServiceType serviceType, ServerClrVersion version)
			: base(serviceType, version) {
		}
예제 #14
0
 public NewProcessAssemblyServerLoader(AssemblyServiceType serviceType, ServerClrVersion version)
     : base(serviceType, version)
 {
 }
예제 #15
0
 public NewProcessAssemblyServerLoader(ServerClrVersion version)
     : base(version)
 {
 }
예제 #16
0
 public NewProcessAssemblyClientFactory(ServerClrVersion serverVersion)
 {
     this.serverVersion = serverVersion;
 }
예제 #17
0
 public NewProcessAssemblyClientFactory()
 {
     this.serverVersion = ServerClrVersion.CLR_ANY_ANYCPU;
 }
 public NewProcessAssemblyServerLoader(ServerClrVersion version)
     : base(version)
 {
 }
예제 #19
0
		internal NewProcessAssemblyClientFactory(ServerClrVersion serverVersion) {
			this.serverVersion = serverVersion;
		}
예제 #20
0
		public NewProcessAssemblyClientFactory() {
			this.serverVersion = ServerClrVersion.CLR_ANY_ANYCPU;
		}