Skip to content

AlexeySoshin/smali2java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

95795b9 · Apr 13, 2022

History

84 Commits
Jan 22, 2021
Jan 22, 2021
Apr 13, 2022
Apr 13, 2022
Jul 27, 2018
Oct 7, 2019
Apr 13, 2022
Apr 13, 2022
Jan 22, 2021
Apr 13, 2022
Apr 13, 2022
Apr 13, 2022
Apr 13, 2022

Repository files navigation

Smali2Java

Build Status codecov

This project attempts to create a valid Java source code from disassembled code used by Dalvik

Main goal of this project is to validate how well your obfuscation strategy works, and what the attacker would be able to gather from your source.

Read the specification here: https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html

Why would you need it if there are tools like https://bytecodeviewer.com/?

  • You can recreate an entire application with a single command
  • Allows you to use other command line tools on the output

Prerequisites

  • Go 1.18+

Building

go build

Usage

First, you'll need an APK that you want to decompile

OSX

brew install apktool
apktool d ./<your_apk>

Output

You'll get a directory, which contains among others a directory called smali

Now you can run Smali2Java on this directory:

smali2java -path_to_smali=<smali_directory>

The resulting Java files will be put beside the Smali ones.

The tool doesn't distinguish between Java and Kotlin. Decompile results will always be Java files.

License

MIT