Skip to content

Dispar - Cross-platform Disassemling binary Parser

License

Notifications You must be signed in to change notification settings

netromdk/dispar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

26e513f · Nov 21, 2021
Nov 6, 2021
Nov 6, 2021
Mar 8, 2020
Apr 17, 2020
Apr 13, 2020
Nov 20, 2021
Nov 20, 2021
Nov 20, 2021
Sep 15, 2016
Aug 29, 2020
Apr 25, 2021
Mar 7, 2020
Mar 14, 2020
Nov 25, 2017
Nov 7, 2021
Dec 4, 2017
Nov 9, 2017
Nov 7, 2021
Nov 25, 2017

Repository files navigation

Test Clang Sanitizers CodeQL

dispar

Dispar is short for "[Dis]assemling binary [Par]ser" written in C++17. The whole concept of the project is to load binaries, like executables, libraries, core dumps etc., and do analysis of their structure and data; most notably their strings, symbols, and functions. Currently, it supports only 32+64 bit Mach-O binaries (including universal binaries) but there are plans for supporting ELF and PE/PE+ later on.

Table of Contents

Screenshots

General usage

Disassembly editor

Hex usage

Dependencies

There are both external and internal libraries and tools required to build and run this program.

External

  • CMake 3.12+
  • Qt 5.15+
    • QtCore
    • QtGui
    • QtWidgets
    • QtPrintSupport (macOS only)
    • QtDBus (macOS and Linux)
    • QtXcbQpa (Linux only)
    • Arch-specific platform plugin: libqcocoa.dylib, qwindows.dll, or libqxcb.so
    • Arch-specific platform style: libqmacstyle.dylib, qwindowsvistastyle.dll
  • Clang, llvm-profdata, and llvm-cov 4+ (for code coverage)
  • Clang, scan-build 4+ (for static analysis)

Internal

Located in the lib folder:

Building The Program

% ./init_repo.sh        # Only needed after first git clone!
% mkdir build
% cd build
% cmake ..
% make

This will create the dispar executable in "./bin/".

NOTE: In the following all cmake invocations assume they're being run from the "./build" folder!

Testing

A suite of software tests can be run like this:

% cmake -DBUILD_TESTS=ON .
% make
% ctest

Contributing

See CONTRIBUTING.md.

Advanced Topics

See ADVANCED.md.