업무 특성상(?) Hex 값을 다루는 경우가 많은데...
이번에 파이썬용 Hex Dump 함수를 간단하게 만들어 봤습니다.
앞으로 파이썬으로 작업하다가 Hex 값이 필요할 땐 이 함수를 우려먹는 걸로... :)
def print_hex_dump(buffer, start_offset=0):
print('-' * 79)
offset = 0
while offset < len(buffer):
# Offset
print(' %08X : ' % (offset + start_offset), end='')
if ((len(buffer) - offset) < 0x10) is True:
data = buffer[offset:]
else:
data = buffer[offset:offset + 0x10]
# Hex Dump
for hex_dump in data:
print("%02X" % hex_dump, end=' ')
if ((len(buffer) - offset) < 0x10) is True:
print(' ' * (3 * (0x10 - len(data))), end='')
print(' ', end='')
# Ascii
for ascii_dump in data:
if ((ascii_dump >= 0x20) is True) and ((ascii_dump <= 0x7E) is True):
print(chr(ascii_dump), end='')
else:
print('.', end='')
offset = offset + len(data)
print('')
print('-' * 79)
사용법은 간단합니다~ :)
print_hex_dump(mft_buf, mft_offset)
요런 식으로 내용을 보고 싶은 버퍼와 시작 오프셋 값을 지정해주면~
요렇게 딱~~
시작 오프셋을 지정하지 않으면 기본적으로 '0' 으로 됩니다.
별거아닌데 쓸데없이 만족스럽네요.. :)
