Rust C++ Shell QML CMake Batchfile Makefile
Clone or download
flanfly Merge pull request #342 from das-labor/xdg-files
icon and desktop file for X Window System desktops
Latest commit 33ffec0 Dec 2, 2017
Permalink
Failed to load latest commit information.
abstract-interp il: extend Load & Store ops, add Initialize Aug 18, 2017
amd64 amd64: address size override prefix Aug 19, 2017
analysis Initial PLT rewriter implementation (ELF only at the moment), ref #247 Aug 13, 2017
avr bump byteorder ver to 1 Aug 19, 2017
cli il: extend Load & Store ops, add Initialize Aug 18, 2017
core build: update to goblin 0.0.11 Aug 25, 2017
data-flow function: de-publicize cflow_graph Jul 6, 2017
glue function: entry_point now returns a BasicBlock 😎. refactor much Jul 6, 2017
graph-algos Initial PLT rewriter implementation (ELF only at the moment), ref #247 Aug 13, 2017
mos6502 bump byteorder ver to 1 Aug 19, 2017
pkg icon and desktop file for X Window System desktops Nov 20, 2017
qml Capping sidebar width Aug 22, 2017
qt project: add region method to return a project's region Jul 30, 2017
test-data fix mos6502 & avr Aug 19, 2017
.gitignore Ignore .rs.bk files generated by rustfmt Apr 26, 2017
.tool-versions Added .tool-versions for asdf users Apr 26, 2017
.travis.yml use stable for doc, doc all Jun 15, 2017
AUTHORS Reorganize project & formatting Jun 8, 2017
CHANGELOG bump version to 0.16.0, update changelog Oct 27, 2016
CONTRIBUTING.md Fixed small errors in contributors guide Apr 6, 2017
Cargo.lock build: update to goblin 0.0.11 Aug 25, 2017
Cargo.toml virtual workspace Jun 13, 2017
LICENSE Update licenses and AUTHORS Sep 30, 2015
README.md update README Jun 13, 2017
appveyor.yml bump qt version on w32 to 5.7 Aug 19, 2017
logo.png Improve & update readme Oct 8, 2016
rustfmt.toml increased line width a bit Jun 9, 2017

README.md

Gitter Build Status Build status Coverage Status

Panopticon

Panopticon - A Libre Cross Platform Disassembler

Panopticon is a cross platform disassembler for reverse engineering written in Rust. It can disassemble AMD64, x86, AVR and MOS 6502 instruction sets and open ELF files. Panopticon comes with Qt GUI for browsing and annotating control flow graphs,

Install

If you simply want to use Panopticon follow the install instructions on the website.

Building

Panopticon builds with Rust stable. The only dependencies aside from a working Rust stable toolchain and Cargo you need is Qt 5.5 or higher.

Ubuntu 15.10 and 16.04

sudo apt install qt5-default qtdeclarative5-dev libqt5svg5-dev \
                 qml-module-qtquick-controls qml-module-qttest \
                 qml-module-qtquick2 qml-module-qtquick-layouts \
                 qml-module-qtgraphicaleffects qml-module-qtqml-models2 \
                 qml-module-qtquick-dialogs \
                 qtbase5-private-dev pkg-config \
                 git build-essential cmake \
                 qml-module-qt-labs-folderlistmodel \
                 qml-module-qt-labs-settings

Fedora 22, 23 and 24

sudo dnf install gcc-c++ cmake make qt5-qtdeclarative-devel qt5-qtquickcontrols \
                 qt5-qtgraphicaleffects qt5-qtsvg-devel \
                 adobe-source-sans-pro-fonts \
                 adobe-source-code-pro-fonts

Gentoo

layman -a rust

USE=widgets sudo -E emerge -av qtgraphicaleffects:5 qtsvg:5 qtquickcontrols:5 \
                               rust cargo cmake

After that clone the repository onto disk and use cargo to build everything.

git clone https://github.com/das-labor/panopticon.git
cd panopticon
cargo build --all --release

Windows

Install the Qt 5.4 SDK, the Rust toolchain and CMake. Panopticon can be build using cargo build --all --release.

OS X

Install Homebrew and get Qt 5.5, CMake and the Rust toolchain. Then, compile Panopticon using cargo.

brew install qt cmake rust
brew link qt --force
brew linkapps qt
export HOMEBREW_QT5_VERSION=$(brew list --versions qt | rev | cut -d ' ' -f1 | rev)
ln -s /usr/local/Cellar/qt/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs
ln -s /usr/local/Cellar/qt/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins
QTDIR64=/usr/local cargo build --all --release

Running

After installation start the panopticon binary. If you build it from source you can type:

cargo run -p panopticon-qt --release

For detailed usage information see the user documentaion.

Contributing

Panopticon is licensed under GPLv3 and is Free Software. Hackers are always welcome. Please check out CONTRIBUTING.md.

Contact