/// <summary> /// kopiert die restlichen Bytes des Streams /// </summary> /// <returns></returns> public byte[] ToArray() { MemoryStream ms = new MemoryStream(); BaseStream.CopyTo(ms); return(ms.ToArray()); }
public virtual byte[] ToArray() { using (var stream = new MemoryStream()) { BaseStream.CopyTo(stream); return(stream.ToArray()); } }
public byte[] GetBytes() { using (var memoryStream = new MemoryStream()) { memoryStream.GetBuffer(); BaseStream.CopyTo(memoryStream); return(memoryStream.ToArray()); } }
public void WriteAllBytes(string file) { var currentPos = BaseStream.Position; using (var fs = File.Create(file)) { BaseStream.Seek(0, SeekOrigin.Begin); BaseStream.CopyTo(fs); } BaseStream.Seek(currentPos, SeekOrigin.Begin); }
private string CreateTempSoundFile() { string path = Path.GetTempFileName(); using (var fs = File.Open(path, FileMode.Create)) { BaseStream.CopyTo(fs); } return(path); }
public MethodResponse(MethodRequest request) : base(new MemoryStream()) { using (MemoryStream ms = new MemoryStream()) { Write((byte)request.Version); Write((byte)ConfigurationManager.AuthenticationMethod); BaseStream.Position = 0; BaseStream.CopyTo(ms); Data = ms.ToArray(); } }
public AuthenticationResponse(AuthenticationRequest request) : base(new MemoryStream()) { using (MemoryStream ms = new MemoryStream()) { Write((byte)request.Subnegotiation); Write((byte)(AccountManager.Authenticate(request) ? (byte)Result.Succeeded : (byte)Result.General_SOCKS_Server_Failure)); //Anything greater than 0 will be taken as Authentication fail by the client. BaseStream.Position = 0; BaseStream.CopyTo(ms); Data = ms.ToArray(); Valid = (byte)Result.Succeeded == Data[1]; } }
public DataResponse(Result result, AddressType addressType, byte[] adressBytes, byte[] portBytes) : base(new MemoryStream()) { using (MemoryStream ms = new MemoryStream()) { Write((byte)5); //Version Write((byte)result); //RequestResult Write((byte)0x00); //Reserved byte, always 0x00 Write((byte)addressType); //AddressType Write(adressBytes); //AddressBytes 4 octets or 15. Write(portBytes); //Port bytes in network format (reversed) //Copy the base stream out into our Data array. BaseStream.Position = 0; BaseStream.CopyTo(ms); Data = ms.ToArray(); } }
/// <summary> /// Clones the reader for parallel reading at the given position /// </summary> /// <returns></returns> public IDjvuReader CloneReader(long position) { DjvuReader newReader = null; // TODO Get rid of not properly synchronized clones or synchronize readers // Do a deep clone with new BaseStream if (_Location != null) { newReader = new DjvuReader(_Location); } else { MemoryStream stream = new MemoryStream((int)BaseStream.Length); BaseStream.CopyTo(stream); newReader = new DjvuReader(stream); } newReader.Position = position; return(newReader); }
public new void Dispose() { if (prev != null) { Flush(); BaseStream.Flush(); BaseStream.Position = 0; prev.Flush(); prev.BaseStream.Flush(); BaseStream.CopyTo(prev.BaseStream); prev.next = null; prev = null; } if (next != null) { next.prev = null; next = null; } base.Dispose(); }
public override void CopyTo(Stream destination, int bufferSize) { BaseStream.CopyTo(destination, bufferSize); }
/// <summary> /// Writes the patch to a stream. /// </summary> /// <param name="stream">The stream to write the file to.</param> public virtual void Save(Stream stream) { BaseStream.Position = 0; BaseStream.CopyTo(stream); }
void IPacket.WriteToStream(IPacketCodec content) { BaseStream.CopyTo(content.BaseStream); }
public Elf(Stream stream, float version, long maxMetadataUsages) : base(stream, version, maxMetadataUsages) { is32Bit = true; elf_header = new Elf32_Ehdr(); elf_header.ei_mag = ReadUInt32(); elf_header.ei_class = ReadByte(); elf_header.ei_data = ReadByte(); elf_header.ei_version = ReadByte(); elf_header.ei_osabi = ReadByte(); elf_header.ei_abiversion = ReadByte(); elf_header.ei_pad = ReadBytes(7); elf_header.e_type = ReadUInt16(); elf_header.e_machine = ReadUInt16(); if (elf_header.e_machine != 0x28 && elf_header.e_machine != 0x3) { throw new Exception("ERROR: Unsupported machines."); } elf_header.e_version = ReadUInt32(); elf_header.e_entry = ReadUInt32(); elf_header.e_phoff = ReadUInt32(); elf_header.e_shoff = ReadUInt32(); elf_header.e_flags = ReadUInt32(); elf_header.e_ehsize = ReadUInt16(); elf_header.e_phentsize = ReadUInt16(); elf_header.e_phnum = ReadUInt16(); elf_header.e_shentsize = ReadUInt16(); elf_header.e_shnum = ReadUInt16(); elf_header.e_shtrndx = ReadUInt16(); program_table = ReadClassArray <Elf32_Phdr>(elf_header.e_phoff, elf_header.e_phnum); if (!GetSectionWithName()) { Console.WriteLine("Detected this may be a dump file. If not, it must be protected."); isDumped = true; Console.WriteLine("Input dump address:"); var dumpAddr = Convert.ToUInt32(Console.ReadLine(), 16); foreach (var phdr in program_table) { phdr.p_offset = phdr.p_vaddr; phdr.p_filesz = phdr.p_memsz; phdr.p_vaddr += dumpAddr; } } var pt_dynamic = program_table.First(x => x.p_type == 2u); dynamic_table = ReadClassArray <Elf32_Dyn>(pt_dynamic.p_offset, pt_dynamic.p_filesz / 8u); #region 判断并解密so var s_text = sectionWithName[".text"]; var s_rodata = sectionWithName[".rodata"]; //统计 .text 段字节数 int[] bytecnt = new int[256]; Position = s_text.sh_offset; byte[] text_bytes = ReadBytes((int)s_text.sh_size); foreach (var b in text_bytes) { bytecnt[b]++; } byte xorbyte = (byte)Array.IndexOf(bytecnt, bytecnt.Max()); //解密 if (xorbyte != 0x00) { //解密text段 for (int i = 0; i < text_bytes.Length; i++) { text_bytes[i] ^= xorbyte; } Position = s_text.sh_offset; BaseStream.Write(text_bytes, 0, text_bytes.Length); //解密rodata段 Position = s_rodata.sh_offset; byte[] rodata_bytes = ReadBytes((int)s_rodata.sh_size); for (int i = 0; i < rodata_bytes.Length; i++) { rodata_bytes[i] ^= xorbyte; } Position = s_rodata.sh_offset; BaseStream.Write(rodata_bytes, 0, rodata_bytes.Length); //保存文件 FileStream fileStream = new FileStream("libil2cpp.fixed.so", FileMode.Create); Position = 0; BaseStream.CopyTo(fileStream); fileStream.Close(); } #endregion if (!isDumped) { RelocationProcessing(); } }
/// <summary> /// kopiert die restlichen Bytes des Streams /// </summary> /// <param name="stream"></param> public void CopyTo(Stream stream) { BaseStream.Seek(0, SeekOrigin.Begin); BaseStream.CopyTo(stream); }