import sys
import os.path
from pykd import dprintln
from pykd import dprint
def printAllSamples():
dprintln( "User mode", True)
dprintln( "Get critical sections list Run Source", True)
dprintln( "Get module list from PEB Run Source", True)
dprintln( "Kernel mode", True )
dprintln( "Get process list Run Source", True)
dprintln( "Get kernel service list Run Source", True)
dprintln( "Get driver object Run Source", True)
dprintln( "" )
def runSample( sampleName ):
try:
packageName, moduleName = sampleName.split(".")
module = __import__( name = sampleName, fromlist = moduleName )
module.__dict__[ "run" ]()
except ImportError:
dprintln("import error")
pass
dprintln( "" )
dprintln( "Sample list", True )
dprintln( "" )
def printSample( sampleName ):
try:
packageName, moduleName = sampleName.split(".")
module = __import__( name = sampleName, fromlist = moduleName )
fileName = os.path.dirname( module.__dict__["__file__"] )
fileName = os.path.join( fileName, moduleName + ".py" )
with open( fileName ) as f:
for line in f:
dprint( line )
except ImportError:
dprintln("import error")
pass
dprintln( "" )
dprintln( "Sample list", True )
dprintln( "" )
def main():
if len(sys.argv) <= 2:
return printAllSamples()
if sys.argv[1] == "run":
runSample( sys.argv[2] )
if sys.argv[1] == "source":
printSample( sys.argv[2] )
if __name__ == "__main__":
main()