From 0c12f39ea7f20658720f7235f34e8b48b6d43f98 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Wed, 26 Oct 2011 06:54:15 +0000 Subject: [PATCH] [0.0 -> 0.1 ] integrated : disasm.h git-svn-id: https://pykd.svn.codeplex.com/svn@70758 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/disasm.h | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pykd/disasm.h diff --git a/pykd/disasm.h b/pykd/disasm.h new file mode 100644 index 0000000..5c54503 --- /dev/null +++ b/pykd/disasm.h @@ -0,0 +1,62 @@ +#pragma once + +#include "dbgmem.h" + +///////////////////////////////////////////////////////////////////////////////// + +class disasm { + +public: + + disasm( ULONG64 offset = 0); + + std::string disassemble() { + std::string s = m_disasm; + m_currentOffset += m_length; + doDisasm(); + return s; + } + + std::string reset() { + + m_currentOffset = m_beginOffset; + doDisasm(); + return m_disasm; + } + + std::string + assembly( const std::string &instr ); + + std::string instruction() const { + return m_disasm; + } + + ULONG64 begin() const { + return m_beginOffset; + } + + ULONG64 current() const { + return m_currentOffset; + } + + ULONG length() const { + return m_length; + } + + ULONG64 ea() const { + return m_ea; + } + +private: + + void doDisasm(); + + ULONG64 m_beginOffset; + ULONG64 m_currentOffset; + ULONG64 m_ea; + ULONG m_length; + + std::string m_disasm; +}; + +/////////////////////////////////////////////////////////////////////////////////