Intel風

HACKINGのP.345の/bin/shを起動するために文字を16進数に直す必要があるそうで。
これから学校の授業でもアセンブリ書かないとダメだから、16進数に直すソース書いてみた。

Test:

$ python to_hex.py                                                                                                                                       
>>//sh
0x68732f2f
>>/bin 
0x6e69622f
>>exit

結果はいい感じ

Source Code

while True:
  ex = raw_input(">>")
  if ex=="exit":break
  tmp,tmp2="",""
  result=""
  for i in ex:
    tmp += hex(ord(i))
  else:
    tmp = tmp[2:].replace('x','')
    for i,tm in enumerate(tmp):
      if i%3==2: continue
      tmp2 += tm
    va1 = tmp2.replace('x','')[::-2]
    va2 = tmp2.replace('x','')[-2::-2]
    for i,re in enumerate(va2):
      result += re + va1[i]
    else:
      for s in range(0,len(result),8):
        print "0x{0}".format(result[s:s+8]);

最近、スクリプト書くのが早くなってきて楽しいです。