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).
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>
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.
To uninstall, pip provides uninstall
command
pip uninstall ShurikenAnalyzer
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
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.
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 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