This is an ascii to shellcode encoder / decoder tool written in Python.
0f20aa3936f92d96b7d5ba9279c97e1407ce5f7847bbe3875b8a6ad73b442a4d
#!/usr/bin/python
'''
This is ascii <-> shellcode encode / decoder tool
programmer : gunslinger_ <yudha.gunslinger[at]gmail.com>
This was written for educational purpose only. or fucking messing around...
i.e how to use encode mode :
--------------------------------------------------------------
gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py
shellcode hex encode decoder
programmer : gunslinger_
what do you want to do ? encode / decode
=> encode
Please input data : /bin
shellcode => \x2f\x62\x69\x6e
gunslinger@localhost:~/shellcode$
--------------------------------------------------------------
i.e how to use decode mode :
"\x68\x2f\x2f\x73\x68" // push $0x68732f2f
"\x68\x2f\x62\x69\x6e" // push $0x6e69622f
we know 'x68' is push, so drop it...
"\x2f\x2f\x73\x68" $0x68732f2f
"\x2f\x62\x69\x6e" $0x6e69622f
--------------------------------------------------------------
gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py
shellcode hex encode decoder
programmer : gunslinger_
what do you want to do ? encode / decode
=> decode
Please input data : \x2f\x2f\x73\x68
hex => 2f2f7368
plaintext => //sh
gunslinger@localhost:~/shellcode$ ./shellcodeencdec.py
shellcode hex encode decoder
programmer : gunslinger_
what do you want to do ? encode / decode
=> decode
Please input data : \x2f\x62\x69\x6e
hex => 2f62696e
plaintext => /bin
gunslinger@localhost:~/shellcode$
--------------------------------------------------------------
and we got that is "/bin//sh"
warning ! this is not disassemble tool !
'''
import binascii, sys, time
RED = '\033[31m'
WHITE = '\033[37m'
RESET = '\033[0;0m'
def main():
print "shellcode hex encode decoder"
print "programmer : gunslinger_ <yudha.gunslinger[at]gmail.com>"
print "what do you want to do ? %sencode%s / %sdecode%s" % (RED, RESET, WHITE, RESET)
q = raw_input("=> ")
if q == "encode":
inputtype = raw_input("Please input data : ")
print "shellcode => ",
for encoded in inputtype:
print "\b\\x"+encoded.encode("hex"),
sys.stdout.flush()
time.sleep(0.5)
print RESET
elif q == "decode":
inputtype = raw_input("Please input data : ")
cleaninput = inputtype.replace("\\x","")
print "hex => ",cleaninput
print "plaintext => ",
print "\b"+cleaninput.decode("hex")
else:
print "wrong answer ! your choice is %sencode%s or %sdecode%s" % (RED, RESET, WHITE, RESET)
sys.exit(1)
if __name__ == '__main__':
main()