1. #!/usr/bin/python 
  2. ''''' 
  3.     This is ascii <-> shellcode encode / decoder tool 
  4.     programmer : gunslinger_ 
  5.     This was written for educational purpose only. or fucking messing around... 
  6.     i.e how to use encode mode : 
  7.         -------------------------------------------------------------- 
  8.         gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py 
  9.         shellcode hex encode decoder 
  10.         programmer : gunslinger_ 
  11.         what do you want to do ? encode / decode 
  12.         => encode 
  13.         Please input data : /bin 
  14.         shellcode => \x2f\x62\x69\x6e 
  15.         gunslinger@localhost:~/shellcode$ 
  16.         -------------------------------------------------------------- 
  17.     i.e how to use decode mode : 
  18.         "\x68\x2f\x2f\x73\x68"  // push   $0x68732f2f 
  19.         "\x68\x2f\x62\x69\x6e"  // push   $0x6e69622f 
  20.         we know 'x68' is push, so drop it... 
  21.         "\x2f\x2f\x73\x68"     $0x68732f2f 
  22.         "\x2f\x62\x69\x6e"     $0x6e69622f 
  23.         -------------------------------------------------------------- 
  24.         gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py 
  25.         shellcode hex encode decoder 
  26.         programmer : gunslinger_ 
  27.         what do you want to do ? encode / decode 
  28.         => decode 
  29.         Please input data : \x2f\x2f\x73\x68 
  30.         hex       =>  2f2f7368 
  31.         plaintext => //sh 
  32.         gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py 
  33.         shellcode hex encode decoder 
  34.         programmer : gunslinger_ 
  35.         what do you want to do ? encode / decode 
  36.         => decode 
  37.         Please input data : \x2f\x62\x69\x6e 
  38.         hex       =>  2f62696e 
  39.         plaintext => /bin 
  40.         gunslinger@localhost:~/shellcode$ 
  41.         -------------------------------------------------------------- 
  42.         and we got that is "/bin//sh" 
  43.          
  44.     warning ! this is not disassemble tool ! 
  45. ''' 
  46. import binascii, sys, time 
  47.  
  48. RED = '\033[31m' 
  49. WHITE = '\033[37m' 
  50. RESET = '\033[0;0m' 
  51.  
  52. def main(): 
  53.     print "shellcode hex encode decode" 
  54.     print "programmer : gunslinger_ " 
  55.     print "what do you want to do ? %sencode%s / %sdecode%s" % (RED, RESET, WHITE, RESET) 
  56.     q = raw_input("=> "
  57.  
  58.     if q == "encode"
  59.         inputtype = raw_input("Please input data : "
  60.         print "shellcode => "
  61.         for encoded in inputtype: 
  62.             print "\b\\x"+encoded.encode("hex"), 
  63.             sys.stdout.flush() 
  64.             time.sleep(0.5
  65.             print RESET 
  66.  
  67.     elif q == "decode"
  68.         inputtype = raw_input("Please input data : "
  69.         cleaninput = inputtype.replace("\\x","") 
  70.         print "hex       => ",cleaninput 
  71.         print "plaintext => "
  72.         print "\b"+cleaninput.decode("hex"
  73.  
  74.     else
  75.         print "wrong answer ! your choice is %sencode%s or %sdecode%s" % (RED, RESET, WHITE, RESET) 
  76.         sys.exit(1)         
  77.  
  78. if __name__ == '__main__'
  79.     main()