Skip to content
Recreate Java code from Smali
Smali Go
Branch: master
Clone or download
AlexeySoshin Merge pull request #12 from sworisbreathing/parse-final-strings-with-…
…spaces

Handle const-string values with spaces in them
Latest commit 4c00e0d Jan 24, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
java Add support for "volatile" property modifier Dec 20, 2018
parser Handle const-string values with spaces in them Dec 25, 2019
smali Add support for "volatile" property modifier Dec 20, 2018
test_data
.gitignore Add CodeCov support Oct 7, 2019
.travis.yml Fix name of the cover profile Oct 7, 2019
README.md Add CodeCov badge Oct 7, 2019
go.mod Add Testify Oct 7, 2019
go.sum Add Testify Oct 7, 2019
smali2java.go Save Java files Mar 3, 2019
small2java_test.go Fix parsing of array arguments Jul 28, 2018

README.md

Smali2Java

Build Status codecov

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

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/?

  • It's command line
  • Allows you to use tools like grep on the output

Prerequisites

  • Go 1.13+

Building

go build

Usage

You'll need APK that you want to decompile

brew install apktool
apktool d ./<your_apk>

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

Now you can run Smali2Java on it:

smali2java -path_to_smali=<smali_directory>

License

MIT

You can’t perform that action at this time.