예제 #1
0
        void find(TypeDefinition type, ICflowDeobfuscator cflowDeobfuscator)
        {
            var additionalTypes = new List <string> {
                "System.IO.BinaryWriter",
            };

            foreach (var method in type.Methods)
            {
                if (!DotNetUtils.isMethod(method, "System.Void", "(System.Int32[],System.UInt32[])"))
                {
                    continue;
                }
                if (!DecryptMethod.couldBeDecryptMethod(method, additionalTypes))
                {
                    continue;
                }
                cflowDeobfuscator.deobfuscate(method);
                if (!decryptMethod.getKey(method))
                {
                    continue;
                }

                findPatchData(type, cflowDeobfuscator);
                return;
            }
        }
예제 #2
0
        void find(TypeDefinition type, ICflowDeobfuscator cflowDeobfuscator)
        {
            var additionalTypes = new List <string> {
                "System.IO.BinaryReader",
                "System.IO.FileStream",
                "System.Reflection.Assembly",
                "System.Reflection.Assembly[]",
                "System.String",
            };

            foreach (var method in type.Methods)
            {
                if (!DotNetUtils.isMethod(method, "System.Reflection.Assembly", "(System.Object,System.ResolveEventArgs)"))
                {
                    continue;
                }
                if (!DecryptMethod.couldBeDecryptMethod(method, additionalTypes))
                {
                    continue;
                }
                cflowDeobfuscator.deobfuscate(method);
                if (!decryptMethod.getKey(method))
                {
                    continue;
                }

                return;
            }
        }