GithubHelp home page GithubHelp logo

drdmitry / elfviz Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 1.8 MB

ELF Data Structure Visualization

Home Page: http://elfviz.conversiontools.io/

JavaScript 84.94% HTML 3.42% Perl 11.64%
react reactjs d3v4 d3 data-visualization elf icicle sunburst

elfviz's Introduction

ELF Data Structure Visualization

Web application for visualization of the ELF files data structure (Sections, Symbols)

Sample files can be downloaded directly from the website (4 sample JSON files).

Two visualization charts was used:

  • Icicles with interaction (to zoom sections, w/o animation)
  • Sunburst without interaction

Technologies used

React.js, D3.js, Bootstrap 3.3.7, FontAwesome, Jest, Enzyme, Webpack, Perl

  • React is used as the rendering engine
  • D3 - visualization kernel
  • Bootstrap - a quick way to use responsive ui
  • Jest, Enzyme - testing; Istanbul (comes with Jest) - code coverage
  • Webpack - dev server and build system
  • Perl - to create convertor for readelf output to json format

Installation

To install dependencies:

yarn
or
npm install

Build web application

yarn build:prod
or
npm run build:prod

As a result, application will be built into dist/ folder.

Open index.html in the browser.

Tests

To run unit tests:

yarn test
or
npm test

To create tests coverage report:

yarn test:coverage
or
npm test:coverage

Report will be generated in the folder: coverage/lcov-report/

Generated code coverage report available at http://elfviz.conversiontools.io/lcov-report/

Code quality check was not included to the tests, because ESLint is integrated into IDE that I use (Visual Studio Code). ESLint can be added as an additional step in the build process.

To run Development environment

yarn start
or
npm start

To generate JSON for custom ELF binary

To generate JSON file for any ELF binary file, use readelf linux command and readelf output parser which was created for this task: tools/parse-readelf.pl

readelf -W -S -s "BinaryFile.o" > ./elf.txt
perl parse-readelf.pl

As a result elf.json will be created, which could be uploaded to the website for visualizing the data.

Created by

Dmitry Fedotov

August 2017

elfviz's People

Contributors

dependabot[bot] avatar drdmitry avatar

Stargazers

 avatar  avatar

Watchers

 avatar  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.