From bc5876cd1a15a84aa098973c0d60016fb273492c Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" Date: Tue, 22 Mar 2011 07:50:42 +0000 Subject: [PATCH] [pykdlib] added: module "modules" and base functionallity for it git-svn-id: https://pykd.svn.codeplex.com/svn@62989 9b283d60-5439-405e-af05-b73fd8c4d996 --- lib/pykdlib/modules.py | 45 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/lib/pykdlib/modules.py b/lib/pykdlib/modules.py index cfa091b..ac359ad 100644 --- a/lib/pykdlib/modules.py +++ b/lib/pykdlib/modules.py @@ -5,15 +5,52 @@ import pykd +moduleList = [] + +def kernelReloadModules(): + + global nt + global moduleList + + nt = pykd.loadModule("nt") + + modules = pykd.typedVarList( nt.PsLoadedModuleList, "nt", "_LDR_DATA_TABLE_ENTRY", "InLoadOrderLinks" ) + + moduleList = [] + + moduleList.append( nt ) + + for m in modules: + + baseName = str( pykd.loadUnicodeString( m.BaseDllName.getAddress() ) ) + + if baseName=="ntoskrnl.exe": + continue + + module = pykd.findModule( m.DllBase ) + + globals()[ module.name().lower() ] = module + + moduleList.append( module ) + + +def userReloadModules(): + + pass + + +def printModuleList(): + pykd.dprintln( "\n".join( [ str(m) for m in moduleList ] ) ) + + if pykd.isKernelDebugging(): - nt = pykd.loadModule("nt") - hal = pykd.loadModule("hal") + kernelReloadModules() +else: - - + userReloadModules()