CTFに使いそうな小技[Python]
よく使うのに忘れがちなのでメモしておく。
実験
>>> print 'AAAA'.encode('hex') #Ascciiを16進数表記にする 41414141 >>> int('41414141',16) # 16進数を10進数に変換 1094795585
Ascii文字列を16進表記
>>> import binascii >>> binascii.hexlify('hoge') '686f6765'
Asccii文字列と16進表記の相互変換
※import binasciiしなくても使える
>>> print 'hoge'.encode('hex') 686f6765 >>> print '686f6765'.decode('hex') hoge
10進数と16進数の相互変換
# 10進数を16進数に変換 >>> hex(10) '0xa' # 先頭に0xを付けて出力 >>> '%#x' % 10 '0x1d' # 先頭に0xを付けずに出力 >>> '%x' % 29 '1d' # 16進数を10進数に変換 >>> int('41414141',16) 1094795585 >>> int('0x41414141',16) # [0x]を付けても付けなくても結果は同じだった 1094795585