4 ms·
Android-apktool: reverse-engineer Android apps
- Osiris 16y agoSounds 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.
- bigmac 16y agoExisting 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.
- trimber 16y agoIt 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/ http://code.google.com/p/smali/).
- JesusFreke 16y agoThe 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.
- rquirk 16y agoRather 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.
- jcl 16y agoApparently 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=71&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary https://code.google.com/p/android-apktool/issues/detail?id=7...
- JesusFreke 16y agoThe actual disassembly is done by smali, which the source code is in fact available for at http://smali.googlecode.com http://smali.googlecode.com.