当前位置: 首页>>代码示例>>C#>>正文


C# IBinaryReader.ReadBytes方法代码示例

本文整理汇总了C#中IBinaryReader.ReadBytes方法的典型用法代码示例。如果您正苦于以下问题:C# IBinaryReader.ReadBytes方法的具体用法?C# IBinaryReader.ReadBytes怎么用?C# IBinaryReader.ReadBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IBinaryReader的用法示例。


在下文中一共展示了IBinaryReader.ReadBytes方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Create

			public static DecrypterV105 Create(IBinaryReader reader) {
				reader.Position = 0;
				if (reader.Length < 0xA4)
					return null;
				var key = reader.ReadBytes(0x94);
				if (!Utils.Compare(reader.ReadBytes(8), ilpPublicKeyToken))
					return null;
				return new DecrypterV105(new Version(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte()), key);
			}
开发者ID:RafaelRMachado,项目名称:de4dot,代码行数:9,代码来源:StaticMethodsDecrypter.cs

示例2: ReadString

		/// <summary>
		/// Reads a string
		/// </summary>
		/// <param name="reader">Reader</param>
		/// <param name="offset">Offset of string</param>
		/// <returns>The string or <c>null</c> if we could not read it</returns>
		static string ReadString(IBinaryReader reader, uint offset) {
			reader.Position = offset;
			if (!reader.CanRead(2))
				return null;
			int size = reader.ReadUInt16();
			int sizeInBytes = size * 2;
			if (!reader.CanRead(sizeInBytes))
				return null;
			var stringData = reader.ReadBytes(sizeInBytes);
			try {
				return Encoding.Unicode.GetString(stringData);
			}
			catch {
				return null;
			}
		}
开发者ID:SAD1992,项目名称:justdecompile-plugins,代码行数:22,代码来源:ResourceDirectory.cs

示例3: ParseMethodBody2

		static MethodBodyHeader ParseMethodBody2(IBinaryReader reader, out byte[] code, out byte[] extraSections) {
			var mbHeader = new MethodBodyHeader();

			uint codeOffset;
			byte b = Peek(reader);
			if ((b & 3) == 2) {
				mbHeader.flags = 2;
				mbHeader.maxStack = 8;
				mbHeader.codeSize = (uint)(reader.ReadByte() >> 2);
				mbHeader.localVarSigTok = 0;
				codeOffset = 1;
			}
			else if ((b & 7) == 3) {
				mbHeader.flags = reader.ReadUInt16();
				codeOffset = (uint)(4 * (mbHeader.flags >> 12));
				if (codeOffset != 12)
					throw new InvalidMethodBody();
				mbHeader.maxStack = reader.ReadUInt16();
				mbHeader.codeSize = reader.ReadUInt32();
				if (mbHeader.codeSize > int.MaxValue)
					throw new InvalidMethodBody();
				mbHeader.localVarSigTok = reader.ReadUInt32();
				if (mbHeader.localVarSigTok != 0 && (mbHeader.localVarSigTok >> 24) != 0x11)
					throw new InvalidMethodBody();
			}
			else
				throw new InvalidMethodBody();

			if (mbHeader.codeSize + codeOffset > reader.Length)
				throw new InvalidMethodBody();
			code = reader.ReadBytes((int)mbHeader.codeSize);

			if ((mbHeader.flags & 8) != 0)
				extraSections = ReadExtraSections2(reader);
			else
				extraSections = null;

			return mbHeader;
		}
开发者ID:GreenDamTan,项目名称:de4dot,代码行数:39,代码来源:MethodBodyParser.cs

示例4: ReadExtraSections2

		static byte[] ReadExtraSections2(IBinaryReader reader) {
			Align(reader, 4);
			int startPos = (int)reader.Position;
			ParseSection(reader);
			int size = (int)reader.Position - startPos;
			reader.Position = startPos;
			return reader.ReadBytes(size);
		}
开发者ID:GreenDamTan,项目名称:de4dot,代码行数:8,代码来源:MethodBodyParser.cs

示例5: ReadBundleGroup

        private IEnumerable<HgChunk> ReadBundleGroup(IBinaryReader binaryReader)
        {
            const uint nullChunkMaxSize = 4;
            const int chunkHeaderSize = 84;

            uint length;
            while((length = binaryReader.ReadUInt32()) > nullChunkMaxSize)
            {
                var nodeID = new HgNodeID(binaryReader.ReadBytes(20));
                var firstParentNodeID = new HgNodeID(binaryReader.ReadBytes(20));
                var secondParentNodeID = new HgNodeID(binaryReader.ReadBytes(20));
                var changesetNodeID = new HgNodeID(binaryReader.ReadBytes(20));
                
                var dataLength = (int)length - chunkHeaderSize;
                
                var data = new byte[dataLength];
                binaryReader.Read(data, 0, dataLength);

                var chunk = new HgChunk(nodeID, firstParentNodeID, secondParentNodeID, changesetNodeID, data);
                yield return chunk;
            } // while
        }
开发者ID:cornelius90,项目名称:InnovatorAdmin,代码行数:22,代码来源:HgBundleReader.cs

示例6: Decode

        private static FragmentList Decode(IBinaryReader patchReader)
        {
            var l = new FragmentList();
            
            while(patchReader.BaseStream.Position != patchReader.BaseStream.Length)
            {
                var start = patchReader.ReadUInt32();
                var end = patchReader.ReadUInt32();
                var len = patchReader.ReadUInt32();
                var data = patchReader.ReadBytes((int)len);
                
                var f = new Fragment {
                    Start = (int)start,
                    End = (int)end,
                    Length = (int)len,
                    Data = data
                };

                //Console.WriteLine("chunk:" + start + " " + end + " " + len);

                l.Add(f);
            }

            return l;
        }
开发者ID:cornelius90,项目名称:InnovatorAdmin,代码行数:25,代码来源:Mpatch.cs


注:本文中的IBinaryReader.ReadBytes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。