업무 특성상(?) 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' 으로 됩니다.
별거아닌데 쓸데없이 만족스럽네요.. :)