Skip to content

netromdk/dispar

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.