private void UpdateDisassemblyToolStripButton_Click(object sender, EventArgs e) { ulong address = Convert.ToUInt64(DisassemblyAddress.Text, 16); byte[] memory = OrbisDbg.GetMemory(address, 0x200); UpdateDisassembly(address, memory, ShowBytesCheckBox.Checked); }
public static float[] ReadFloats(ulong offset, int arrayLength = 3) { float[] vec = new float[arrayLength]; for (int i = 0; i < arrayLength; i++) { byte[] buffer = OrbisDbg.GetMemory(offset + ((uint)i * 4), 4); vec[i] = BitConverter.ToSingle(buffer, 0); } return(vec); }
private void UpdateFormsOnPaused() { OrbisDbg.registers regs = OrbisDbg.GetRegisters(); if (!bUpdatedOnPause) { bool isBreakpoint = OrbisDbg.Ext.ReadByte(regs.r_rip - 1) == 0xCC; ulong breakAddress = isBreakpoint ? regs.r_rip - 1 : regs.r_rip; if (isBreakpoint) { for (int i = 0; i < breakpoints.Count; i++) { if (breakpoints[i].address == breakAddress) { OrbisDbg.Ext.WriteByte(breakAddress, breakpoints[i].instruction); break; } } regs.r_rip -= 1; OrbisDbg.SetRegisters(regs); } if (memoryForm != null) { memoryForm.UpdateMemoryView(regs.r_rip, 0x1000, OrbisDbg.GetMemory(regs.r_rip, 0x1000)); } if (registersForm != null) { registersForm.UpdateRegisterWindow(regs); } } if (disassemblyForm != null && regs.r_rip != PreviousRip) { if (PreviousRip != 0 && regs.r_rip > PreviousRip && regs.r_rip - PreviousRip < 0xD0) { disassemblyForm.UpdateDisassemblyKeepMemory(regs.r_rip); } else { PreviousRip = regs.r_rip; byte[] memory = OrbisDbg.GetMemory(regs.r_rip, 0x100); disassemblyForm.UpdateDisassembly(regs.r_rip, memory, disassemblyForm.IsShowingBytes()); } } bUpdatedOnPause = true; }
private void PeekToolStripButton_Click(object sender, EventArgs e) { ulong address = Convert.ToUInt64(AddressToolStripTextBox.Text, 16); int size = Convert.ToInt32(LengthToolStripTextBox.Text, 16); this.address = address; this.offset = 0; byte[] memory = OrbisDbg.GetMemory(address, size); MemoryData = memory; MemoryStream stream = new MemoryStream(MemoryData); MemoryViewHexBox.ByteProvider = new DynamicFileByteProvider(stream); }
private void backtracePointerToolStripMenuItem_Click(object sender, EventArgs e) { if (pointers.Count > 0) { ulong address = pointers.Pop().address; AddressToolStripTextBox.Text = "0x" + address.ToString("X"); if (address != 0x0) { byte[] memory = OrbisDbg.GetMemory(address, Convert.ToInt32(LengthToolStripTextBox.Text, 16)); MemoryData = memory; MemoryStream stream = new MemoryStream(MemoryData); MemoryViewHexBox.ByteProvider = new DynamicFileByteProvider(stream); } } }
private void followPointerToolStripMenuItem_Click(object sender, EventArgs e) { ulong previousAddress = 0x0; if (pointers.Count > 0) { previousAddress = pointers.Peek().address; } pointers.Push(new Pointers(address + offset)); ulong newAddress = OrbisDbg.Ext.ReadUInt64(address + offset); AddressToolStripTextBox.Text = "0x" + newAddress.ToString("X"); byte[] memory = OrbisDbg.GetMemory(newAddress, Convert.ToInt32(LengthToolStripTextBox.Text, 16)); MemoryData = memory; MemoryStream stream = new MemoryStream(MemoryData); MemoryViewHexBox.ByteProvider = new DynamicFileByteProvider(stream); }
public static double ReadDouble(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 8); return(BitConverter.ToDouble(buffer, 0)); }
public static ulong ReadUInt64(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 8); return(BitConverter.ToUInt64(buffer, 0)); }
public static float ReadFloat(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 4); return(BitConverter.ToSingle(buffer, 0)); }
public static uint ReadUInt32(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 4); return(BitConverter.ToUInt32(buffer, 0)); }
public static ushort ReadUInt16(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 2); return(BitConverter.ToUInt16(buffer, 0)); }
public static byte[] ReadBytes(ulong offset, int length) { byte[] buffer = OrbisDbg.GetMemory(offset, length); return(buffer); }
public static byte ReadByte(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 1); return(buffer[0]); }
public static bool ReadBool(ulong offset) { byte[] buffer = OrbisDbg.GetMemory(offset, 1); return(buffer[0] != 0); }