Code Monkey home page Code Monkey logo

jvd's Introduction

JVD Utilities Functions for L1NNA LAB

Build and Release Ghidra JAR Disassembler Test Source Lexer Test Sylomatrix Test Symbolic Execution Test

Universal disassembly generation and processing for JARV1S/Kam1n0

The package will detect if IDA Pro is available in the path. If not, it will download and use Ghidra.

๐Ÿš€ Installation:

Required: Python 3+. [Optional: OpenJDK 13+]

# install from github:
pip install git+https://github.com/L1NNA/JARV1S-Ghidra@master

# install from offline installer:
python jvd_installer_windows.zip

๐Ÿ”ฅ Usage:

Example:

jvd binary_file_to_decompile

Batch mode: (process files end with .o in the bins folder)

jvd bins --ext=.o

If IDA Pro is not in the path, Ghidra jar will be downloaded and installed. If not using the offline installer, during the first run, the required jar and JDK will be downloaded to ~/jv-dependences if needed. Options:

usage: jvd <file> [options]

    โ–„โ–ˆ        โ–„โ–ˆ  โ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„   โ–ˆโ–ˆโ–ˆโ–„โ–„โ–„โ–„      โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆ       โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–ˆโ–ˆโ–„ โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–ˆโ–ˆโ–„   โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆ       โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆ       โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆ       โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆ       โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆโ–Œ    โ–„ โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ 
    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–ˆโ–ˆ โ–ˆโ–€    โ–€โ–ˆ   โ–ˆโ–€   โ–€โ–ˆ   โ–ˆโ–€    โ–ˆโ–ˆโ–ˆ    โ–ˆโ–€  
by  โ–€                                               

positional arguments:
  file                  The binary file or the targeted path. (default: None)

optional arguments:
  -h, --help            show this help message and exit
  --ext                 If the input is a folder, the file extension to
                        include. Default is all the files. Empty string will
                        select files without any `.`. (default: None)

Gobal commands and toggles:
  --unpack              Unpack before disassembling. (default: False)
  --cleanup             Clean up the temporary folders. (default: False)
  --verbose {-1,0,1,2}
  --make                Make the installer for offline usage. (default: False)

Disassembling and decompilation:
  --dis                 Disassemble all the applicable files. (default: False)
  --dis-backend {ghidra}
                        The disassembler (default: ghidra)
  --dis-decompile       Decomiple the code (if IDA is chosen as disassembler,
                        it will use Ghidra to decompile and merge. (default:
                        False)
  --dis-capa            Analyze by capa (default: False)

Vex IR code extraction and symbolic execution:
  --vex                 Extract vex code and execution path. (default: False)
  --vex-tracelet        For vex processing, extract tracelet (>0) rather than
                        full execution paths (-1). (default: -1)
  --vex-loop            Maximum bound of loops in symbolic execution (default:
                        2)
  --vex-overlap         The tracelets overlap each other. (default: False)

Source code processing:
  --src                 Extract AST/CPGs from a source file or a folder.
                        (default: False)
  --src-lang {cpp,c,python,java}
                        The source code language. (default: c)

Packed binaries will be unapcked (in order) by:

- p7zip (zip, rar, tar, gzip, etc)
- upx (original version)
- un{i}packer
  - ASPack: Advanced commercial packer with a high compression ratio
  - FSG: Freeware, fast to unpack
  - MEW: Specifically designed for small binaries
  - MPRESS: Free, more complex packer
  - PEtite: Freeware packer, similar to ASPack
  - UPX: Cross-platform, open source packer (including modified UPX)

โญ Contributors:

  • Steven Ding - Queen's Computing
  • Litao Li - Queen's Computing
  • Christopher Bennett - Carleton University
  • Miguel Garzon - University of Ottawa, Bell Canada

๐ŸŒต Used in requirements.txt:

git+https://github.com/L1NNA/JARV1S-Ghidra@master

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.