All Projects → aaronst → Macholibre

aaronst / Macholibre

Licence: apache-2.0
Mach-O & Universal Binary Parser

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Macholibre

Detect It Easy
Program for determining types of files for Windows, Linux and MacOS.
Stars: ✭ 2,982 (+2823.53%)
Mutual labels:  malware-analysis, mach-o
Simplejson
simplejson is a simple, fast, extensible JSON encoder/decoder for Python
Stars: ✭ 1,372 (+1245.1%)
Mutual labels:  json
Reddit Bot
🤖 Making a Reddit Bot using Python, Heroku and Heroku Postgres.
Stars: ✭ 99 (-2.94%)
Mutual labels:  json
Hs Jose
Haskell JOSE and JWT library
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Dynamo Archive
Archive and Restore DynamoDB Tables, from the Command Line
Stars: ✭ 99 (-2.94%)
Mutual labels:  json
Eslint Plugin I18n Json
Fully extendable eslint plugin for JSON i18n translation files.
Stars: ✭ 101 (-0.98%)
Mutual labels:  json
Javascript Stringify
Stringify is to `eval` as `JSON.stringify` is to `JSON.parse`
Stars: ✭ 98 (-3.92%)
Mutual labels:  json
Swagger Express Ts
Generate and serve swagger.json
Stars: ✭ 102 (+0%)
Mutual labels:  json
Jam Api
Parse web pages using CSS query selectors
Stars: ✭ 1,375 (+1248.04%)
Mutual labels:  json
Mercury
Simple Android app that sends pre-configured commands to remote servers via SSH.
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Jsonabc
Sorts JSON object alphabetically. It supports nested objects, arrays and collections. Works offline and beautifies JSON object too.
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Parse Google Docs Json
Authenticates with Google API and parse Google Docs to JSON or Markdown
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Yar
Light, concurrent RPC framework for PHP & C
Stars: ✭ 1,369 (+1242.16%)
Mutual labels:  json
Crawlerpack
Java 網路資料爬蟲包
Stars: ✭ 99 (-2.94%)
Mutual labels:  json
Vm setup
A collection of scripts to initialize a windows VM to run all the malwares!
Stars: ✭ 101 (-0.98%)
Mutual labels:  malware-analysis
Rpc.py
A fast and powerful RPC framework based on ASGI/WSGI.
Stars: ✭ 98 (-3.92%)
Mutual labels:  json
Wernicke
Redaction for structured data
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Pytkgen
Create Tkinter GUIs from JSON definition files.
Stars: ✭ 100 (-1.96%)
Mutual labels:  json
Lychee
The most complete and powerful data-binding library and persistence infra for Kotlin 1.3, Android & Splitties Views DSL, JavaFX & TornadoFX, JSON, JDBC & SQLite, SharedPreferences.
Stars: ✭ 102 (+0%)
Mutual labels:  json
Sketch Json Parser
Replaces layer values in groups with JSON data
Stars: ✭ 101 (-0.98%)
Mutual labels:  json

macholibre

Description

macholibre is a Mach-O and Universal binary parser. It extracts information such as architectures, load commands, dynamic libraries, symbols, function imports, and tons more. Then it packs all of that information into JSON for ease of analysis and integration.

Python 2

With Python 2 in its sunset years, macholibre has moved on to Python 3. However, for those of you that are stuck on Python 2, see the python2 branch. No promises on long-term support, but the code differences right now are minimal and should be fairly easy to maintain.

Dependencies

This project requires Python 3.4+ to run, due to API changes in plistlib.

I tried to make this tool with as little external dependencies as possible, and I think I did pretty well on that front. The only module I import is for parsing CMS signatures. I've configured setup.py to automatically install it with the module, but you can also install it seperately with pip or manually from github.

How To

Installation

I recommend using pip to install macholibre.

pip3 install git+https://github.com/aaronst/macholibre.git

Usage

As a Module

from macholibre import parse

# mach-o file path
path = '/home/aaron/my_macho'

# return dict
data = parse(path)

# write json to file
out_file = open('/home/aaron/macholibre_output.json', 'w')
parse(path, out=out_file)

As a Script

usage: macholibre [-h] [-c] [-o OUTPUT] input [input ...]

MachoLibre: Mach-O & Universal Binary Parser
  [email protected]

positional arguments:
  input                 input mach-o file(s) to parse

optional arguments:
  -h, --help            show this help message and exit
  -c, --certificates    extract certificates
  -o OUTPUT, --output OUTPUT
                        output JSON file

examples:
  macholibre macho
  macholibre -o output.json macho
  macholibre -o output.json machos/*

Output Format

macholibre formats all of its output into a JSON blob. Check out app_store.json as an example using the App Store app.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].