diff --git a/pykd/dbgext.cpp b/pykd/dbgext.cpp index 358ffbb..00e789a 100644 --- a/pykd/dbgext.cpp +++ b/pykd/dbgext.cpp @@ -130,7 +130,9 @@ BOOST_PYTHON_MODULE( pykd ) boost::python::def( "ptrSignDWord", &loadByPtr ); boost::python::def( "ptrQWord", &loadByPtr ); boost::python::def( "ptrSignQWord", &loadByPtr<__int64> ); - boost::python::def( "ptrPtr", &loadPtrByPtr ); + boost::python::def( "ptrPtr", &loadPtrByPtr ); + boost::python::def( "ptrMWord", &loadMWord ); + boost::python::def( "ptrSignMWord", &loadSignMWord ); boost::python::def( "compareMemory", &compareMemory, compareMemoryOver( boost::python::args( "addr1", "addr2", "length", "phyAddr" ), "" ) ); boost::python::def( "getCurrentStack", &getCurrentStack ); boost::python::def( "reloadModule", &reloadModule ); diff --git a/pykd/dbgmem.cpp b/pykd/dbgmem.cpp index b06bc69..b927527 100644 --- a/pykd/dbgmem.cpp +++ b/pykd/dbgmem.cpp @@ -179,6 +179,36 @@ loadPtrByPtr( ULONG64 address ) /////////////////////////////////////////////////////////////////////////////////// +ULONG64 +loadMWord( ULONG64 address ) +{ + ULONG64 value = 0; + + if ( is64bitSystem() ) + loadMemory( address, &value, sizeof(ULONG64) ); + else + loadMemory( address, &value, sizeof(ULONG) ); + + return value; +} + +/////////////////////////////////////////////////////////////////////////////////// + +LONG64 +loadSignMWord( ULONG64 address ) +{ + LONG64 value = 0; + + if ( is64bitSystem() ) + loadMemory( address, &value, sizeof(LONG64) ); + else + loadMemory( address, &value, sizeof(LONG) ); + + return value; +} + +/////////////////////////////////////////////////////////////////////////////////// + boost::python::object loadUnicodeStr( ULONG64 address ) { diff --git a/pykd/dbgmem.h b/pykd/dbgmem.h index 2b9be0b..a696029 100644 --- a/pykd/dbgmem.h +++ b/pykd/dbgmem.h @@ -12,6 +12,12 @@ loadMemory( ULONG64 address, PVOID dest, ULONG length, BOOLEAN phyAddr = FALSE ) ULONG64 loadPtrByPtr( ULONG64 address ); +ULONG64 +loadMWord( ULONG64 address ); + +LONG64 +loadSignMWord( ULONG64 address ); + template boost::python::object