/Shuriken-Analyzer

Repository for a library focused on binary analysis (mainly for Java related bytecodes)

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Shuriken-Analyzer

Shuriken Logo White

Welcome to the repository of Shuriken Analyzer, a library intended for bytecode analysis! Shuriken is an evolution from Kunai-Static-analyzer project, where the architecture of the library has been modified in order to better adapt it to other bytecodes. Shuriken is intended to offer analysts parsing, disassembly and analysis capabilities, and it is planned to have an improved version of the Intermediate Representation (IR) provided by Kunai.

Inside the repository you will find the next folders:

  • shuriken: folder with the code from the main library. Here the core code from Shuriken is written the code from the parsers, the disassemblers, etc.
  • shuriken-dump: command line tool for dumping the structure of a DEX file (for the moment).

Staff

Shuriken Analyzer is a project maintained by the Shuriken Team:

  • R&D Leader/Software Protection Shihan (師範): Robert Y. <@yates82>
  • CI/CD Master/Compilers Lover: Jasmine T. <@thisisjjasmine>
  • Advisor/Developer on Free Time: Antonio N. <@jeppojeps>
  • Project lead/Chief Architect/That guy who program things: Eduardo B. <@Farenain>

Installation

With python3 and pip

Install

To install the library, you can use pip. Just run the following command:

 pip install git+https://github.com/Fare9/Shuriken-Analyzer.git@main#subdirectory=shuriken/bindings/Python/

This uses git clone to clone the repository and invoke setup.py in the shuriken/bindings/Python/ folder.

setup.py will install the shuriken library as well as provides python api bindings for the library.

Uninstall

To uninstall, pip provides uninstall command

pip uninstall ShurikenAnalyzer

With raw cmake

Install

To install, start by cloning the respotory and then run the following commands:

 cmake -S . -B build/ -DCMAKE_BUILD_TYPE=Release  && cmake --build build/ -j && sudo cmake --install build/

This helps:

  • Configure the project to be built in Release mode
  • Build the project with all the cores
  • Install the project in usr/local/bin, thus needing sudo permissions

Uninstall

For uninstalling, run

sudo cmake --build build/ --target uninstall

to uninstall the project. Again, since we are remove files from /usr/local/, sudo permissions are needed.

APIs In Other Programming Languages

For supporting other programming languages, we are working on offering a shim API in C. Once we have a stable API in C, we plan to start writing the APIs for other languages, right now we plan the next APIs:

  • C API
  • Python API

The Project

The project is still in an "alpha" version, but we are in continuous development. If you want to help do not hesitate to open an issue, or if you want to write some code, check opened issues and read the CONTRIBUTING.md which contains a few points about the coding style of the project.

The logo has been designed and created by ShanShan Bu, and now distributed under Creative Common License.

Shuriken Analyzer Logo by ShanShan Bu is licensed under Attribution-ShareAlike 4.0 International