18

it seems that either dex2jar and/or jd-GUI gives bad de-obfuscation even for the simplest code of if-else condition (they show a while(true) loop which has a return; on its first line .

are there any other freeware apps that do the same work of de-obfuscation? maybe something that can also use the mapping file of proguard ?

halfer
  • 19,824
  • 17
  • 99
  • 186
android developer
  • 114,585
  • 152
  • 739
  • 1,270
  • Any java (.class) decompiler works if you run the apk through dex2jar. There is unfortunately no real alternative to jd-gui I know of. http://www.program-transformation.org/Transform/JavaDecompilers lists some but they all seem to be older / unsupported / no longer available – zapl Aug 21 '12 at 23:09
  • i've found the next one: http://www.androidpolice.com/2013/01/31/for-developers-jeb-is-a-powerful-new-decompiler-for-android-apps-but-its-not-cheap/ , but even though it's really good, it's also very expensive (1000$ for a single license!!!) . the link contains some other alternatives though – android developer Mar 07 '13 at 10:17
  • 2021/2022 update: I found this and it works well: https://plugins.jetbrains.com/plugin/17851-jadx-android-decompiler – Lorenzo Dec 31 '21 at 21:29
  • @Lorenzo Interesting! Does it work well? – android developer Jan 01 '22 at 00:48

1 Answers1

4

Actually the best alternative that I have tested is JEB Decompiler that works directly on Dalvik bytecode to generate the sources without conversion in Java bytecode(that is the main source of errors in decompilation procedure), but unfortunately is a commercial software a bit expensive for an individual.

Alternatively try Kivlad , but note that requires Ruby runtime 1.x to run, and is still an alpha release in development

Virtuous Ten Studio (VTS) is another nice tool that uses APKtool as engine, the quality of java src result is inferior to JEB and comparable to dex2jar + java decompiler, but the environment is very comfortable. (Has a donate license but works for free)

Silverstorm
  • 15,398
  • 2
  • 38
  • 52