업무 특성상(?) 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' 으로 됩니다.

별거아닌데 쓸데없이 만족스럽네요.. :)