GithubHelp home page GithubHelp logo

ykankaya / rgat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ncatlin/rgat

0.0 1.0 0.0 72.16 MB

An instruction trace visualisation tool for dynamic program analysis

License: Apache License 2.0

C++ 40.31% C 0.81% QMake 58.36% Assembly 0.40% Batchfile 0.12%

rgat's Introduction

rgat

An instruction trace visualisation tool intended to help reverse engineers make the link between target behaviour and code

What is rgat?

rgat uses dynamic binary instrumentation (courtesy of DynamoRIO) to produce graphs from running executables. It creates static and animated visualisations in real-time to support types of analysis that might be a lot more cumbersome with disassemblers and debuggers alone.

This page explains what kind of things you can and can't do with it but basically, it (used to) look like this and I haven't updated the images yet:

Live animation:

image

Edge frequency Heatmap:

gametime heatmap

Static view zoomed into individual instructions:

Static view zoomed into individual instructions

You may also want a brief introduction to the graph layout.

Latest Version

Version 0.5.3 (Feb 2019) is here: 7z (16MB) for Windows x86 and x64 binary targets. rgat itself is compiled for running on x64 hosts.

At some point in the last year of no releases i've moved instrumentation to PIN because it worked more reliably at the time, especially on my AMD processor (which is a bit odd). I plan to have both DynamoRIO and PIN clients working to give a bit of redundancy.

Lot's of other usability changes, mainly around the UI and a settings dialog.

Preperation has been made for a Linux port. My TODO list is gigantic but getting a proper tree rendering is the main priority to make the visualisations actually useful on a wide variety of binaries.

See the CHANGELOG for a list of changes.

Download/Installation

Try to execute something. If you have 'DLL not found errors', install the VS 2017 redistributable https://go.microsoft.com/fwlink/?LinkId=746572

Problems

See Issues and Limitations

Excuses

This is an unstable preview release. I promise not to use that excuse when the basic functionality has been done.

99% of problems you find will be my fault, though. Instrumenting arbitrary code - especially malicious obfuscated code - tends to present a lot of edge cases.

'rgat'?

'runtime graph analysis tool' or 'ridiculous graph analysis tool', depending on your fondness for the concept.

Credit where it is due

rgat relies upon:

  • Intel PIN for generating instruction [opcode] traces
  • Capstone for disassembling them
  • Qt for managing OpenGL and handling input
  • rapidjson used for serialising traces
  • Base 64 code for encoding symbol/module path strings
  • pe-parse which performs some binary header analysis

rgat's People

Contributors

ncatlin avatar radarhere avatar xn0px90 avatar

Watchers

 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.