4
0
mirror of https://github.com/QuasarApp/LIEF.git synced 2025-05-03 15:49:33 +00:00
LIEF/tests/GenerateConfigMachO.py
2017-03-30 16:56:49 +02:00

41 lines
951 B
Python

#!/usr/bin/env python2
#-*- coding: utf-8 -*-
# This file is used to generate config file for LIEF test
# It uses `Macholib`(https://pypi.python.org/pypi/macholib/) to generate yaml config file
import re
import yaml
import hashlib
from macholib.MachO import MachO
import sys
macho = MachO(sys.argv[1])
# Not FAT for now
assert(len(macho.headers) == 1)
binary = dict()
header = dict()
m_header = macho.headers[0]
header["magic"] = m_header.MH_MAGIC
header["cputype"] = m_header.header.cputype
header["cpusubtype"] = m_header.header.cpusubtype
header["filetype"] = m_header.header.filetype
header["ncmds"] = m_header.header.ncmds
header["sizeofcmds"] = m_header.header.sizeofcmds
header["flags"] = m_header.header.flags
header["reserved"] = m_header.header.reserved
binary["header"] = header
for lc, cmd, data in m_header.commands:
print lc.get_cmd_name()
print cmd.describe()
print len(data)
print header