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); }
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); }