예제 #1
0
        DCGen3 getDCGen3(TypeDef type)
        {
            var method = getMoveNext(type);

            if (method == null)
            {
                return(null);
            }
            simpleDeobfuscator.deobfuscate(method);

            var dcGen = new DCGen3();
            int index = 0;

            if (!getMagicDC3(method, ref index, out dcGen.magic1))
            {
                return(null);
            }
            if (!getMagicDC3(method, ref index, out dcGen.magic2))
            {
                return(null);
            }

            var dt = type.DeclaringType;

            dcGen.dc2 = getDCGen2(dt.NestedTypes[0] == type ? dt.NestedTypes[1] : dt.NestedTypes[0]);

            return(dcGen);
        }
예제 #2
0
        DCGen3 getDCGen3(TypeDef type)
        {
            var method = getMoveNext(type);
            if (method == null)
                return null;
            simpleDeobfuscator.deobfuscate(method);

            var dcGen = new DCGen3();
            int index = 0;
            if (!getMagicDC3(method, ref index, out dcGen.magic1))
                return null;
            if (!getMagicDC3(method, ref index, out dcGen.magic2))
                return null;

            var dt = type.DeclaringType;
            dcGen.dc2 = getDCGen2(dt.NestedTypes[0] == type ? dt.NestedTypes[1] : dt.NestedTypes[0]);

            return dcGen;
        }