mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 21:03:23 +08:00
[pykdlib] added: module "regs" and base functionallity for it
git-svn-id: https://pykd.svn.codeplex.com/svn@63269 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
8603390ceb
commit
30bbc70403
@ -7,19 +7,37 @@ import pykd
|
||||
|
||||
moduleList = []
|
||||
|
||||
def kernelReloadModules():
|
||||
def reloadModules():
|
||||
|
||||
global moduleList
|
||||
|
||||
|
||||
for m in moduleList: globals()[ m.name().lower() ] = None
|
||||
|
||||
|
||||
if pykd.isKernelDebugging():
|
||||
|
||||
global nt
|
||||
global moduleList
|
||||
|
||||
nt = pykd.loadModule("nt")
|
||||
|
||||
modules = pykd.typedVarList( nt.PsLoadedModuleList, "nt", "_LDR_DATA_TABLE_ENTRY", "InLoadOrderLinks" )
|
||||
|
||||
moduleList = []
|
||||
|
||||
moduleList.append( nt )
|
||||
|
||||
else:
|
||||
|
||||
ntdll = pykd.loadModule("ntdll")
|
||||
|
||||
peb = pykd.typedVar( "ntdll", "_PEB", pykd.getCurrentProcess() )
|
||||
|
||||
ldr = pykd.typedVar( "ntdll", "_PEB_LDR_DATA", peb.Ldr )
|
||||
|
||||
modules = pykd.typedVarList( ldr.InLoadOrderModuleList.getAddress(), "ntdll", "_LDR_DATA_TABLE_ENTRY", "InLoadOrderLinks" )
|
||||
|
||||
|
||||
moduleList = []
|
||||
|
||||
for m in modules:
|
||||
|
||||
baseName = str( pykd.loadUnicodeString( m.BaseDllName.getAddress() ) )
|
||||
@ -34,23 +52,14 @@ def kernelReloadModules():
|
||||
moduleList.append( module )
|
||||
|
||||
|
||||
def userReloadModules():
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def printModuleList():
|
||||
pykd.dprintln( "\n".join( [ str(m) for m in moduleList ] ) )
|
||||
|
||||
|
||||
|
||||
if pykd.isKernelDebugging():
|
||||
|
||||
kernelReloadModules()
|
||||
|
||||
else:
|
||||
|
||||
userReloadModules()
|
||||
reloadModules()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
42
lib/pykdlib/regs.py
Normal file
42
lib/pykdlib/regs.py
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
#
|
||||
# CPU registers
|
||||
#
|
||||
|
||||
import pykd
|
||||
|
||||
CPU = pykd.getProcessorMode()
|
||||
x86Regs = [ "eax", "ebx", "ecx", "edx", "esi", "edi", "eip", "ebp", "esp" ]
|
||||
amd64Regs = [ "rax", "rbx", "rcx", "rdx", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "rsi", "rdi", "rip", "rbp", "rsp" ]
|
||||
|
||||
|
||||
def reloadRegs():
|
||||
|
||||
""" reload register's values"""
|
||||
|
||||
if CPU == "X86":
|
||||
|
||||
for regName in x86Regs:
|
||||
globals()[regName] = pykd.reg(regName)
|
||||
|
||||
elif CPU == "X64":
|
||||
|
||||
for regName in amd64Regs:
|
||||
globals()[regName] = pykd.reg(regName)
|
||||
|
||||
|
||||
def printRegs():
|
||||
|
||||
""" print CPU registers values"""
|
||||
|
||||
if CPU == "X86":
|
||||
for regName in x86Regs:
|
||||
pykd.dprintln( "%s = %#x( %d )" % ( regName, globals()[regName], globals()[regName] ) )
|
||||
|
||||
elif CPU == "X64":
|
||||
for regName in amd64Regs:
|
||||
pykd.dprintln( "%s = %#x( %d )" % ( regName, globals()[regName], globals()[regName] ) )
|
||||
|
||||
|
||||
|
||||
reloadRegs()
|
Loading…
Reference in New Issue
Block a user