当前位置: 首页>>代码示例>>C#>>正文


C# ISimpleDeobfuscator.DecryptStrings方法代码示例

本文整理汇总了C#中ISimpleDeobfuscator.DecryptStrings方法的典型用法代码示例。如果您正苦于以下问题:C# ISimpleDeobfuscator.DecryptStrings方法的具体用法?C# ISimpleDeobfuscator.DecryptStrings怎么用?C# ISimpleDeobfuscator.DecryptStrings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ISimpleDeobfuscator的用法示例。


在下文中一共展示了ISimpleDeobfuscator.DecryptStrings方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: FindGetManifestResourceStreamTypeResource

		EmbeddedResource FindGetManifestResourceStreamTypeResource(TypeDef type, ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			foreach (var method in type.Methods) {
				if (!method.IsPrivate || !method.IsStatic || method.Body == null)
					continue;
				if (!DotNetUtils.IsMethod(method, "System.String", "(System.Reflection.Assembly,System.Type,System.String)"))
					continue;
				simpleDeobfuscator.Deobfuscate(method);
				simpleDeobfuscator.DecryptStrings(method, deob);
				foreach (var s in DotNetUtils.GetCodeStrings(method)) {
					var resource = DotNetUtils.GetResource(module, s) as EmbeddedResource;
					if (resource != null)
						return resource;
				}
			}
			return null;
		}
开发者ID:SAD1992,项目名称:justdecompile-plugins,代码行数:16,代码来源:ResourceMethodsRestorer.cs

示例2: CheckInitMethod

		bool CheckInitMethod(MethodDef checkMethod, ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			var requiredFields = new string[] {
				"System.Collections.Hashtable",
				"System.Boolean",
			};

			foreach (var method in DotNetUtils.GetCalledMethods(module, checkMethod)) {
				if (method.Body == null)
					continue;
				if (!method.IsStatic)
					continue;
				if (!DotNetUtils.IsMethod(method, "System.Void", "()"))
					continue;

				var type = method.DeclaringType;
				if (!new FieldTypes(type).Exactly(requiredFields))
					continue;
				var ctor = type.FindMethod(".ctor");
				if (ctor == null)
					continue;
				var handler = DeobUtils.GetResolveMethod(ctor);
				if (handler == null)
					continue;
				simpleDeobfuscator.DecryptStrings(handler, deob);
				var resourcePrefix = GetResourcePrefix(handler);
				if (resourcePrefix == null)
					continue;

				for (int i = 0; ; i++) {
					var resource = DotNetUtils.GetResource(module, resourcePrefix + i.ToString("D5")) as EmbeddedResource;
					if (resource == null)
						break;
					resources.Add(resource);
				}

				initMethod = method;
				return true;
			}

			return false;
		}
开发者ID:GreenDamTan,项目名称:de4dot,代码行数:41,代码来源:LibAssemblyResolver.cs

示例3: FindStringsResource2

		bool FindStringsResource2(IDeobfuscator deob, ISimpleDeobfuscator simpleDeobfuscator, MethodDef initMethod) {
			if (initMethod == null)
				return false;

			stringsResource = FindStringResource(initMethod);
			if (stringsResource != null)
				return true;

			simpleDeobfuscator.DecryptStrings(initMethod, deob);
			stringsResource = FindStringResource(initMethod);
			if (stringsResource != null)
				return true;

			return false;
		}
开发者ID:GreenDamTan,项目名称:de4dot,代码行数:15,代码来源:StringDecrypterInfo.cs

示例4: Initialize

		public void Initialize(ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			if (encryptedResource.Method == null)
				return;

			initMethod = FindInitMethod(simpleDeobfuscator);
			if (initMethod == null)
				throw new ApplicationException("Could not find resource resolver init method");

			simpleDeobfuscator.Deobfuscate(encryptedResource.Method);
			simpleDeobfuscator.DecryptStrings(encryptedResource.Method, deob);
			encryptedResource.Initialize(simpleDeobfuscator);
		}
开发者ID:SAD1992,项目名称:justdecompile-plugins,代码行数:12,代码来源:ResourceResolver.cs

示例5: FindEmbeddedResource

		public static EmbeddedResource FindEmbeddedResource(ModuleDefMD module, TypeDef decrypterType, ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			return FindEmbeddedResource(module, decrypterType, (method) => {
				simpleDeobfuscator.Deobfuscate(method);
				simpleDeobfuscator.DecryptStrings(method, deob);
			});
		}
开发者ID:RafaelRMachado,项目名称:de4dot,代码行数:6,代码来源:BabelUtils.cs

示例6: InitializeInfos

		bool InitializeInfos(ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			if (handlerMethod == null)
				return true;

			foreach (var method in resolverType.Methods) {
				if (!method.IsStatic || method.Body == null)
					continue;
				if (!DotNetUtils.IsMethod(method, "System.Void", "()"))
					continue;
				if (!DeobUtils.HasInteger(method, ':') || !DeobUtils.HasInteger(method, '|'))
					continue;

				simpleDeobfuscator.Deobfuscate(method);
				simpleDeobfuscator.DecryptStrings(method, deob);
				if (!InitializeInfos(method))
					continue;

				return true;
			}

			return false;
		}
开发者ID:SAD1992,项目名称:justdecompile-plugins,代码行数:22,代码来源:ResourceResolver.cs

示例7: Initialize

		public void Initialize(ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			if (handlerMethod == null)
				return;

			FindOtherType();

			simpleDeobfuscator.Deobfuscate(handlerMethod);
			simpleDeobfuscator.DecryptStrings(handlerMethod, deob);
			if (!CreateAssemblyInfos())
				throw new ApplicationException("Could not initialize assembly infos");

			if (decryptMethod != null) {
				simpleDeobfuscator.Deobfuscate(decryptMethod);
				simpleDeobfuscator.DecryptStrings(decryptMethod, deob);
				if (!CreateDecryptKey())
					throw new ApplicationException("Could not initialize decryption key");
			}
		}
开发者ID:GodLesZ,项目名称:de4dot,代码行数:18,代码来源:AssemblyResolver.cs

示例8: GetAssemblyInfos

		public List<AssemblyInfo> GetAssemblyInfos(ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob) {
			var infos = new List<AssemblyInfo>();

			if (embedResolverMethod != null) {
				simpleDeobfuscator.Deobfuscate(embedResolverMethod);
				simpleDeobfuscator.DecryptStrings(embedResolverMethod, deob);
				embedPassword = GetEmbedPassword(embedResolverMethod);
			}

			if (embedPassword == null)
				return infos;

			foreach (var rsrc in module.Resources) {
				var resource = rsrc as EmbeddedResource;
				if (resource == null)
					continue;
				if (!Regex.IsMatch(resource.Name.String, "^cfd_([0-9a-f]{2})+_$"))
					continue;

				var asmData = Decrypt(embedPassword, Gunzip(resource.Data.ReadAllBytes()));
				var mod = ModuleDefMD.Load(asmData);
				infos.Add(new AssemblyInfo(asmData, resource, mod.Assembly.FullName, mod.Assembly.Name.String, DeobUtils.GetExtension(mod.Kind)));
			}

			return infos;
		}
开发者ID:GodLesZ,项目名称:de4dot,代码行数:26,代码来源:AssemblyDecrypter.cs

示例9: Find

        public void Find(ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob)
        {
            var entryPoint = module.EntryPoint;
            if (entryPoint == null)
                return;
            if (!new LocalTypes(entryPoint).All(requiredEntryPointLocals))
                return;
            var type = entryPoint.DeclaringType;
            if (!new FieldTypes(type).All(requiredFields))
                return;

            bool use7zip = type.NestedTypes.Count == 6;
            MethodDef decyptMethod;
            if (use7zip)
                decyptMethod = FindDecryptMethod_7zip(type);
            else
                decyptMethod = FindDecryptMethod_inflate(type);
            if (decyptMethod == null)
                return;

            ConfuserVersion theVersion = ConfuserVersion.Unknown;
            var decryptLocals = new LocalTypes(decyptMethod);
            if (decryptLocals.Exists("System.IO.MemoryStream")) {
                if (DotNetUtils.CallsMethod(entryPoint, "System.Void", "(System.String,System.Byte[])"))
                    theVersion = ConfuserVersion.v10_r42915;
                else if (DotNetUtils.CallsMethod(entryPoint, "System.Void", "(System.Security.Permissions.PermissionState)"))
                    theVersion = ConfuserVersion.v10_r48717;
                else
                    theVersion = ConfuserVersion.v14_r57778;
            }
            else
                theVersion = ConfuserVersion.v14_r58564;

            var cctor = type.FindStaticConstructor();
            if (cctor == null)
                return;

            if ((asmResolverMethod = FindAssemblyResolverMethod(entryPoint.DeclaringType)) != null) {
                theVersion = ConfuserVersion.v14_r58802;
                simpleDeobfuscator.Deobfuscate(asmResolverMethod);
                if (!FindKey1(asmResolverMethod, out key1))
                    return;
            }

            switch (theVersion) {
            case ConfuserVersion.v10_r42915:
            case ConfuserVersion.v10_r48717:
            case ConfuserVersion.v14_r57778:
                break;

            case ConfuserVersion.v14_r58564:
            case ConfuserVersion.v14_r58802:
                simpleDeobfuscator.Deobfuscate(decyptMethod);
                if (FindKey0_v14_r58564(decyptMethod, out key0))
                    break;
                if (FindKey0_v14_r58852(decyptMethod, out key0)) {
                    if (!decryptLocals.Exists("System.Security.Cryptography.RijndaelManaged")) {
                        theVersion = ConfuserVersion.v14_r58852;
                        break;
                    }
                    if (use7zip) {
                        if (new LocalTypes(decyptMethod).Exists("System.IO.MemoryStream"))
                            theVersion = ConfuserVersion.v17_r75076;
                        else if (module.Name == "Stub.exe")
                            theVersion = ConfuserVersion.v18_r75184;
                        else if (!IsGetLenToPosStateMethodPrivate(type))
                            theVersion = ConfuserVersion.v18_r75367;
                        else
                            theVersion = ConfuserVersion.v19_r77172;
                    }
                    else if (IsDecryptMethod_v17_r73404(decyptMethod))
                        theVersion = ConfuserVersion.v17_r73404;
                    else
                        theVersion = ConfuserVersion.v15_r60785;
                    break;
                }
                throw new ApplicationException("Could not find magic");

            default:
                throw new ApplicationException("Invalid version");
            }

            simpleDeobfuscator.Deobfuscate(cctor);
            simpleDeobfuscator.DecryptStrings(cctor, deob);

            if (FindEntryPointToken(simpleDeobfuscator, cctor, entryPoint, out entryPointToken) && !use7zip) {
                if (DotNetUtils.CallsMethod(asmResolverMethod, "System.Void", "(System.String)"))
                    theVersion = ConfuserVersion.v17_r73477;
                else
                    theVersion = ConfuserVersion.v17_r73566;
            }

            mainAsmResource = FindResource(cctor);
            if (mainAsmResource == null)
                throw new ApplicationException("Could not find main assembly resource");
            version = theVersion;
        }
开发者ID:kakkerlakgly,项目名称:de4dot,代码行数:97,代码来源:Unpacker.cs


注:本文中的ISimpleDeobfuscator.DecryptStrings方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。