GithubHelp home page GithubHelp logo

zaolin / panopticon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from das-labor/panopticon

0.0 2.0 0.0 3.5 MB

A libre cross-platform disassembler.

Home Page: https://panopticon.re

License: Other

CMake 2.20% Python 0.08% C++ 91.31% Assembly 0.03% Shell 0.27% Makefile 0.01% QML 6.09%

panopticon's Introduction

Intro

Panopticon is a cross platform disassembler for reverse engineering. It consists of a C++ library for disassembling, analysing decompiling and patching binaries for various platforms and instruction sets.

Panopticon comes with GUI for browsing control flow graphs, displaying analysis results, controlling debugger instances and editing the on-disk as well as in-memory representation of the program.

Building

In order to compile Panopticon the following needs to be installed first:

  • Qt 5.3
  • CMake 2.8
  • g++ 4.7 or Clang 3.4
  • Boost 1.53
  • Kyoto Cabinet 1.2.76
  • libarchive 3.1.2

Linux

First install the prerequisites using your package manager.

Ubuntu 13.10 and 14.04:

sudo apt-get install g++ cmake git libboost-dev libboost-filesystem-dev libboost-graph-dev libkyotocabinet-dev libarchive-dev qt5-default qtdeclarative5-dev libqt5qml-quickcontrols qtdeclarative5-folderlistmodel-plugin qtdeclarative5-settings-plugin

Fedora 20:

sudo yum install gcc-c++ cmake git kyotocabinet-devel libarchive-devel qt5-qtdeclarative-devel qt5-qtquickcontrols boost-filesystem boost-graph boost-static

After that clone the repository onto disk, create a build directory and call cmake and the path to the source as argument. Compile the project using GNU Make.

git clone https://github.com/das-labor/panopticon.git
mkdir panop-build
cd panop-build
cmake ../panopticon
make -j4
sudo make install

Windows

After installing the prerequisites on Windows use the CMake GUI to generate Visual Studio project files or Mingw Makefiles. Panopticon can be compiled using VC++ 2013 or Mingw g++.

Running

The current version only supports AVR and has no ELF or PE loader yet. To test Panopticon you need relocated AVR code. Such a file is prepared in lib/test/sosse.

qt/qtpanopticon -a ../panopticon/lib/test/sosse

Or, you can start Panopticon without command line parameters and select the test file manually by starting a new session.

Contributing

Panopticon is licensed under GPLv3 and is Free Software. Hackers are always welcome. See http://panopticon.re for our project documentation. Panopticon uses Github for issue tracking: https://github.com/das-labor/panopticon/issues

The documentation is build by typing:

make doc

View it by opening doc/html/index.html in your web browser.

Panopticon consists of two sub projects: libpanopticon and qtpanopticon. The libpanopticon resides in the lib/ directory inside the repository. It implements all disassembling and analysis functionality. The libpanopticon has a test suite that can be found in lib/test/ after compilation.

The qtpanopticon application is a Qt5 GUI for libpanopticon. The front end uses QtQuick2 that interacts with libpanopticon using a thin C++ interface (the Session, Panopticon, LinearModel and ProcedureModel classes). For the graph view qtpanopticon implements the graph layout algorithm used by Graphviz' DOT program[1]. The Sugiyama class exposes this functionality to QtQuick2. The QML files that reside in res/. The qtpanopticon test suite is placed in qt/test/ after compilation.

Both test suites can are run by typing ctest.

References

[1] K. Sugiyama, S. Tagawa, and M. Toda. “Methods for Visual Understanding of Hierarchical Systems”. IEEE Transactions on Systems, Man, and Cybernetics, 1981.

panopticon's People

Contributors

flanfly avatar meedidy avatar

Watchers

James Cloos avatar Zaolin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.