Example #1
0
        public static int CalculateSizeOfbfObject(BinaryFormatterRootObject inBinaryFormatterRootObject)
        {
            int size = 17; // fized header size

            foreach (BinaryFormatterObject bfObj in inBinaryFormatterRootObject.binaryFormatterObjects)
            {
                if (bfObj.typeBytes != null)
                {
                    size += bfObj.typeBytes.Length;
                }

                if (bfObj.valueBytes != null)
                {
                    size += bfObj.valueBytes.Length;
                }
            }

            return(size);
        }
Example #2
0
        public static MemoryStream ReconstructFromBinaryFormatterObject(BinaryFormatterRootObject inBinaryFormatterRootObject)
        {
            int fullsize = CalculateSizeOfbfObject(inBinaryFormatterRootObject);

            MemoryStream ms = new MemoryStream(fullsize);

            ms.Write(inBinaryFormatterRootObject.headerBytes, 0, inBinaryFormatterRootObject.headerBytes.Length);
            foreach (BinaryFormatterObject bfObj in inBinaryFormatterRootObject.binaryFormatterObjects)
            {
                if (bfObj.typeBytes != null)
                {
                    ms.Write(bfObj.typeBytes, 0, bfObj.typeBytes.Length);
                }

                if (bfObj.valueBytes != null)
                {
                    ms.Write(bfObj.valueBytes, 0, bfObj.valueBytes.Length);
                }
            }
            return(ms);
        }
Example #3
0
 public static String JsonNetBinaryFormatterObjectSerializer(BinaryFormatterRootObject inBinaryFormatterRootObject)
 {
     return(Newtonsoft.Json.JsonConvert.SerializeObject(inBinaryFormatterRootObject, typeof(Helpers.ModifiedVulnerableBinaryFormatters.BinaryFormatterRootObject), null));
 }
Example #4
0
        public static MemoryStream ReconstructFromJsonNetSerializedBinaryFormatterObject(String jsonNet_str)
        {
            BinaryFormatterRootObject deserialized_obj = (BinaryFormatterRootObject)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonNet_str, typeof(BinaryFormatterRootObject));

            return(ReconstructFromBinaryFormatterObject(deserialized_obj));
        }