public void deSerialize(RWStream file) { int size = file.ReadInt32(); var bData = file.ReadBytes(size); RWStream data = new RWStream(bData); IDeserializable Iself = this; while (data.Position < data.Length) { Utilities.ReadProperty(ref data, Iself); } }
/// <summary>Peek into the Memory</summary> /// <param name="startDumpAddress">The Hex offset to start dump Example:0xC0000000 </param> /// <param name="dumpLength">The Length or size of dump Example:0xFFFFFF </param> /// <param name="memoryAddress">The memory address to peek Example:0xC5352525 </param> /// <param name="peekSize">The byte size to peek Example: "0x4" or "4"</param> /// <returns>Return the hex string of the value</returns> private string Peek(uint startDumpAddress, uint dumpLength, uint memoryAddress, int peekSize) { var total = (memoryAddress - startDumpAddress); if (memoryAddress > (startDumpAddress + dumpLength) || memoryAddress < startDumpAddress) { throw new Exception("Memory Address Out of Bounds"); } if (!Connect()) { return(null); //Call function - If not connected return } if (!GetMeMex(startDumpAddress, dumpLength)) { return(null); //call function - If not connected or if somethign wrong return } var readWriter = new RWStream(); try { var data = new byte[1026]; //byte chuncks //Writing each byte chuncks======== for (var i = 0; i < dumpLength / 1024; i++) { _tcp.Client.Receive(data); readWriter.WriteBytes(data, 2, 1024); } //Write whatever is left var extra = (int)(dumpLength % 1024); if (extra > 0) { _tcp.Client.Receive(data); readWriter.WriteBytes(data, 2, extra); } readWriter.Flush(); readWriter.Position = total; var value = readWriter.ReadBytes(peekSize); return(Functions.Functions.ToHexString(value)); } catch (Exception ex) { throw new Exception(ex.Message); } finally { readWriter.Close(true); _tcp.Close(); //close connection _connected = false; _memexValidConnection = false; } }
public void deSerialize(RWStream file) { var size = file.ReadInt32(); var bData = new byte[size]; file.Position += 4; Utilities.ReadStringFromFile(ref file); file.Position += 4; bData = file.ReadBytes(size);; var data = new RWStream(bData); IDeserializable Iself = this; while (data.Position < data.Length) { Utilities.ReadProperty(ref data, Iself); } }
/// <summary>Peek into the Memory</summary> /// <param name="startDumpAddress">The Hex offset to start dump Example:0xC0000000 </param> /// <param name="dumpLength">The Length or size of dump Example:0xFFFFFF </param> /// <param name="memoryAddress">The memory address to peek Example:0xC5352525 </param> /// <param name="peekSize">The byte size to peek Example: "0x4" or "4"</param> /// <returns>Return the hex string of the value</returns> private string Peek(uint startDumpAddress, uint dumpLength, uint memoryAddress, int peekSize) { var total = (memoryAddress - startDumpAddress); if (memoryAddress > (startDumpAddress + dumpLength) || memoryAddress < startDumpAddress) throw new Exception("Memory Address Out of Bounds"); if (!Connect()) return null; //Call function - If not connected return if (!GetMeMex(startDumpAddress, dumpLength)) return null; //call function - If not connected or if somethign wrong return var readWriter = new RWStream(); try { var data = new byte[1026]; //byte chuncks //Writing each byte chuncks======== for (var i = 0; i < dumpLength / 1024; i++) { _tcp.Client.Receive(data); readWriter.WriteBytes(data, 2, 1024); } //Write whatever is left var extra = (int)(dumpLength % 1024); if (extra > 0) { _tcp.Client.Receive(data); readWriter.WriteBytes(data, 2, extra); } readWriter.Flush(); readWriter.Position = total; var value = readWriter.ReadBytes(peekSize); return Functions.Functions.ToHexString(value); } catch (Exception ex) { throw new Exception(ex.Message); } finally { readWriter.Close(true); _tcp.Close(); //close connection _connected = false; _memexValidConnection = false; } }