diff --git a/snippets/cr0.py b/snippets/cr0.py index f352cf0..a4540e9 100644 --- a/snippets/cr0.py +++ b/snippets/cr0.py @@ -10,7 +10,7 @@ def cr0( value = 0 ): if value == 0: value = reg( "cr0" ) - dprintln( "CR0: %x (" % value + "".join( [ ( value & ( 1 << ( 31 - i ) ) ) and "1" or "0" for i in range(0,31) ] ) + ")" ) + dprintln( "CR0: %x (" % value + "".join( [ ( value & ( 1 << ( 31 - i ) ) ) and "1" or "0" for i in range(0,32) ] ) + ")" ) for i in range (0, 31): bits = { 0 : "PE", 1 : "MP", 2 : "EM", 3 : "TS", 4 : "ET", 5 : "NE", 16 : "WP", 18 : "AM", 29 : "NW", 30 : "CD", 31 : "PG" } @@ -26,7 +26,7 @@ if __name__ == "__main__": print "script is launch out of windbg" quit( 0 ) - if (sys.argv[0] != "" ): - cr0( int( sys.argv[0], 16 ) ) + if ( len( sys.argv ) > 1 ): + cr0( int( sys.argv[1], 16 ) ) else: cr0() diff --git a/snippets/cr4.py b/snippets/cr4.py index a4437d8..df49f28 100644 --- a/snippets/cr4.py +++ b/snippets/cr4.py @@ -10,7 +10,7 @@ def cr4( value = 0 ): if value == 0: value = reg( "cr4" ) - dprintln( "CR4: %x (" % value + "".join( [ ( value & ( 1 << ( 31 - i ) ) ) and "1" or "0" for i in range(0,31) ] ) + ")" ) + dprintln( "CR4: %x (" % value + "".join( [ ( value & ( 1 << ( 31 - i ) ) ) and "1" or "0" for i in range(0,32) ] ) + ")" ) for i in range (0, 31): bits = { 0 : "VME", 1 : "PVI", 2 : "TSD", 3 : "DE", 4 : "PSE", 5 : "PAE", 6 : "MCE", 7 : "PGE", 8 : "PCE", 9 : "OSFXSR", 10 : "OSXMMEXCPT", 13 : "VMXE", 14 : "SMXE", 17 : "PCIDE", 18 : "OSXSAVE" } @@ -26,8 +26,8 @@ if __name__ == "__main__": print "script is launch out of windbg" quit( 0 ) - if (sys.argv[0] != "" ): - cr4( int( sys.argv[0], 16 ) ) + if len(sys.argv) > 1: + cr4( int( sys.argv[1], 16 ) ) else: cr4() diff --git a/snippets/export.py b/snippets/export.py index 74f0af6..5aaa0fe 100644 --- a/snippets/export.py +++ b/snippets/export.py @@ -52,15 +52,11 @@ if __name__ == "__main__": print "script is launch out of windbg" quit( 0 ) - if len( sys.argv ) == 1: - - if sys.argv[0]=="": - dprintln( "module name not found" ) - else: - export( sys.argv[0] ) - + if len (sys.argv)<=0: + dprintln( "usage: !py export module_name ( export mask )" ) + elif len( sys.argv ) == 2: + export( sys.argv[1] ) else: - - export( sys.argv[0], sys.argv[1] ) + export( sys.argv[1], sys.argv[2] ) diff --git a/snippets/gdt.py b/snippets/gdt.py index 33d2e48..08a8bf8 100644 --- a/snippets/gdt.py +++ b/snippets/gdt.py @@ -27,7 +27,7 @@ def printGdtEntry( addr ): limit = ( limit << 12 ) | 0xFFF - dprint( "attr: %x ( " % attr + "".join( [ ( attr & ( 1 << ( 12 - i ) ) ) and "1" or "0" for i in range(0,12) ] ) + " )" ) + dprint( "attr: %x ( " % attr + "".join( [ ( attr & ( 1 << ( 11 - i ) ) ) and "1" or "0" for i in range(0,12) ] ) + " )" ) dprint( " base: %x" % base ) dprintln( " limit: %x" % limit ) @@ -46,22 +46,19 @@ if __name__ == "__main__": print "script is launch out of windbg" quit( 0 ) - if sys.argv[0] == "help": - printGdtHelp() + gdtr = reg("gdtr") - elif len( sys.argv )==1: - gdtr = reg("gdtr") - - if sys.argv[0] == "": - for s in ( "cs", "es", "ds", "ss", "gs", "fs", "tr" ): - dprintln( s + " (%x):" % reg(s) ) - printGdtEntry( gdtr + ( reg( s ) & 0xFFF8 ) ) - dprintln("") - else: - printGdtEntry( gdtr + ( int( sys.argv[0], 16 ) & 0xFFF8 ) ) + if len( sys.argv)==1: + for s in ( "cs", "es", "ds", "ss", "gs", "fs", "tr" ): + dprintln( s + " (%x):" % reg(s) ) + printGdtEntry( gdtr + ( reg( s ) & 0xFFF8 ) ) + dprintln("") + + elif sys.argv[1] == "help": + printGdtHelp() elif len( sys.argv )==2: - printGdtEntry( int( sys.argv[0], 16 ) + ( int( sys.argv[1], 16 ) & 0xFFF8 ) ) + printGdtEntry( gdtr + ( int( sys.argv[1], 16 ) & 0xFFF8 ) ) else: - printGdtHelp() + printGdtEntry( int( sys.argv[1], 16 ) + ( int( sys.argv[2], 16 ) & 0xFFF8 ) ) diff --git a/snippets/vmcs.py b/snippets/vmcs.py index c621185..4e5f841 100644 --- a/snippets/vmcs.py +++ b/snippets/vmcs.py @@ -188,7 +188,7 @@ if __name__ == "__main__": print "script is launch out of windbg" quit( 0 ) - vmcsPrint( int( sys.argv[0], 16 ) ) + vmcsPrint( int( sys.argv[1], 16 ) )