반응형

파일내용 hex dump 로 보기



1. 문자열 처리로 hex 보기

   <참고> http://ebeab.com/2012/10/10/python-string-format/

f = open('blurcat.bmp','rb')
t = f.read()
type(t)
print 'file size = ', len(t)
print t[:30]
print repr(t[:30])

kk = t[:30]

for x in kk:
    # print hex(ord(x))
    pass
    
l = [hex(ord(x)) for x in kk]
print ' l ==> ', l
print ''.join(l)
print '\n ----------------------------------- \n'

l2 = [hex(ord(x))[2:] for x in kk]
print l2
m = ''.join(l2)
print 'len of m  = ', len(m)
print m
print '\n ----------------------------------- \n'

k2 = [ '%02x'%ord(x) for x in kk]   # '%02x' -> 16진수 표시, 2자리, 0 으로 채우기
print 'k2 = ',k2
print ''.join(k2)
print '\n ----------------------------------- \n'

k3 = [ '{:0>2x}'.format(ord(t)) for t in kk]  # '{:0>2x}' -> 16진수, 2자리, 0 으로 채우기, 우측정렬(>)
print 'k3 = ',k3
print ''.join(k3)
print '\n ----------------------------------- \n'

k4 = [  '{:02x}'.format(ord(t)) for t in kk]   #  '{:02x}' --> 16진수 표시, 2자리, 0 으로 채우기
print 'k4 = ',k4
print ''.join(k4)

ord(x)  --- 문자 x 의 코드 숫자 출력   

            https://docs.python.org/2/library/functions.html#ord



2. binascii 모듈 사용하기

  <참고> http://stackoverflow.com/questions/3964245/convert-file-to-hex-string-python

import binascii

f = open('blurcat.bmp','rb')
t = f.read()
tt = binascii.hexlify(t)
print type(tt)

# 1 byte 당  hexa 표시는 2자리숫자이므로, 30 bytes 데이터를 hexa 로 볼려면 60개를 불러봐야함.
print tt[:60]  



>>> binascii.hexlify('abc')
'616263'
>>> binascii.unhexlify('616263')
'abc'
>>> 




**  파일전체 hex dump 참고 사이트 **


http://c2.com/cgi/wiki?HexDumpInManyProgrammingLanguages


http://stackoverflow.com/questions/16443185/reading-a-binary-file-on-backwards-using-python



반응형
Posted by 자유프로그램
,