Files
lief-project-LIEF/api/python/examples/disassembler.py
T
2026-04-11 12:41:55 +02:00

41 lines
867 B
Python
Executable File

#!/usr/bin/env python
"""
This script disassembles an ELF/PE/Mach-O binary using LIEF's extended API
Note: this script is only working with the extended version of LIEF
"""
import argparse
import lief
from pathlib import Path
def disassemble(target: lief.Binary, addr: int):
for inst in target.disassemble(addr):
print(inst)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("file", help="Target file", type=Path)
parser.add_argument(
"address", help="Address to disassemble", type=lambda x: int(x, 0)
)
args = parser.parse_args()
target_file = args.file
addr = args.address
target = lief.parse(target_file)
if target is None:
print(f"Can't load: {target_file}")
return 1
disassemble(target, addr)
if __name__ == "__main__":
raise SystemExit(main())