5

Currently, I only know about apktool.

But is there any tools that helps in checking the code, editing it and compiling it back to apk?

10

There are many tools, some are more low-level and some build on top of the low-level tools to make nicer and more complete tools.

Here are my favorites:

Also look promising:

6

If you want to modify code, then the only real option I know of is bak/smali, which apktool provides a helpful wrapper for.

If you merely want to understand the code, there's lots of options. For example, you could use Enjarify or dex2jar to translate it to a jar file and then use any Java bytecode tools or decompilers. There's also a few decompilers with native Android support.

  • Colud you mention the decompilers that support ndk? – KYHSGeekCode May 7 '18 at 22:23
4

On desktop

You can try Antimony's answer.

Also check this comment(which states using dex2jar on .dex file and JD-GUI on jar file):

If you want to decompile an apk directly on your phone, show java can be a good option. You can just select an apk file and wait. Then you can get rhe java source code of the app. Though it has much rooms for improvement, its handy.

WHEN YOU ENCOUNTER JNI/NDK

You have to decompile the .so files inside the lib folder. So you may have to decompile them, which are usually arm linux shared libraries.

I am currently developing a helper app that helps you decompile native library targeted ARM and x86, and other CPU instructions.

Releases

Android-Disassembler release.

Or you can visit the git repository (Android-Disassembler).

However In general, Unfortunately, some developers prevent or make it hard to decompile the apk file, by changing class, methods and variables' names. So you may have some hard time as many reversing routines do.

Hope my answer helped anyway.

1

GDA: supports APK, DEX, ODEX and OAT files. A Dalvik bytecode decompiler was written entirely in c++. So, unlike most app analysis tools, GDA does not need to rely on the Java platform, And as the use of the Bytecode directly translated into Java code without Smali code translation. So it is more succinct, more portable and faster.

https://github.com/charles2gan/GDA-android-reversing-Tool

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.