Hacker News new | past | comments | ask | show | jobs | submit login
Android-apktool: reverse-engineer Android apps (code.google.com)
40 points by gasull on Aug 12, 2010 | hide | past | favorite | 7 comments



Rather ironically the source code for the tool is not available. You'd have to use a Java disassembler to reverse-engineer how the reverse-engineer tool works.


Apparently the author isn't happy with the messiness of his current build process, but plans to release the source eventually:

https://code.google.com/p/android-apktool/issues/detail?id=7...


The actual disassembly is done by smali, which the source code is in fact available for at http://smali.googlecode.com.


Sounds like .NET Reflector for Dalvik. I'm curious how well it works. They make it sound like it'll practically generate compilable source code.

I wonder how long it'll be until we see obfuscation tools available for developers.


Existing java bytecode obfuscators should work. The one I worked on does. The Dalvik compiler translates the .class into dalvik bytecode. You can obfuscate the java bytecode and the obfuscation survives the translation layer.


It works quite well for an early version. I used it on a few apps to change some minor things in the layout. However, it does not generate actual Java source code but instead disassembles the Dalvik executables to generate smali code(http://code.google.com/p/smali/).


The smali code that is generated is in fact reassembleable. The smali format is meant to be as close to a 1-to-1 mapping for the dex file as possible. Disassembling and then immediately reassembling something will produce an equivalent (almost identical) dex file. The only things that might be different are misc. internal details, like the order of certain items, etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: