| 1234567891011121314151617181920 |
- import ctypes
- import os
- import pathlib
- from hexdump import hexdump
- fxn = None
- def disasm_raw(buf):
- global fxn
- if fxn is None:
- shared = pathlib.Path(__file__).parent / "disasm.so"
- if not shared.is_file():
- os.system(f'cd {pathlib.Path(__file__).parent} && gcc -shared disasm-a3xx.c -o disasm.so')
- fxn = ctypes.CDLL(shared.as_posix())['disasm']
- fxn(buf, len(buf))
- def disasm(buf):
- END = b"\x00\x00\x00\x00\x00\x00\x00\x03"
- buf = buf[0x510:] # this right?
- buf = buf.split(END)[0] + END
- disasm_raw(buf)
|