public virtual bool decrypt(IBinaryReader fileDataReader, DumpedMethod dm)
            {
                if (fileDataReader.ReadByte() != 0x2A)
                {
                    return(false);                      // Not a RET
                }
                methodsDataReader.Position = fileDataReader.ReadCompressedUInt32();

                dm.mhCodeSize = methodsDataReader.ReadCompressedUInt32();
                dm.code       = methodsDataReader.ReadBytes((int)dm.mhCodeSize);
                if ((dm.mhFlags & 8) != 0)
                {
                    dm.extraSections = MethodBodyParser.readExtraSections(methodsDataReader);
                }

                if (!decryptCode(dm))
                {
                    return(false);
                }

                return(true);
            }
Esempio n. 2
0
            public virtual bool decrypt(BinaryReader fileDataReader, DumpedMethod dm)
            {
                if (fileDataReader.ReadByte() != 0x2A)
                {
                    return(false);                      // Not a RET
                }
                int methodsDataOffset = DeobUtils.readVariableLengthInt32(fileDataReader);

                methodsDataReader.BaseStream.Position = methodsDataOffset;

                dm.mhCodeSize = (uint)DeobUtils.readVariableLengthInt32(methodsDataReader);
                dm.code       = methodsDataReader.ReadBytes((int)dm.mhCodeSize);
                if ((dm.mhFlags & 8) != 0)
                {
                    dm.extraSections = MethodBodyParser.readExtraSections(methodsDataReader);
                }

                if (!decryptCode(dm))
                {
                    return(false);
                }

                return(true);
            }