Vraag:
Android-applicatie decompileren
Mellowcandle
2013-03-20 14:02:41 UTC
view on stackexchange narkive permalink

De Android Java-code is gecompileerd in Dalvik-bytecode, die redelijk leesbaar is. Ik vraag me af of het in theorie en in de praktijk mogelijk is om decompilatiesoftware voor Dalvik-bytecode te schrijven?

Zes antwoorden:
Igor Skochinsky
2013-03-20 14:41:43 UTC
view on stackexchange narkive permalink

Het is niet alleen mogelijk, maar het is al gedaan, en niet slechts één keer. Hier zijn er drie waarvan ik weet, en er kunnen er meer zijn.

  1. Kivlad door Cody Brocious

    http://www.matasano.com/research / kivlad /

  2. DAD door Zost (Androguard-project):

    http://code.google.com/p / androguard / wiki / Decompiler

  3. JEB door Nicolas Falliere (commercieel)

    http: //www.android-decompiler .com /

Dan zijn er alle Java-decompilers die kunnen worden gebruikt na gebruik van dex2jar of Dare op het Dalvik-binaire bestand.

In theorie werken alle Java-decompilers en kunnen Dalvik-klassebestanden (terug) worden omgezet in Java-klassebestanden. In aanvulling op de bovenstaande links, zou je kunnen kijken naar [Soot] (http://www.bodden.de/2013/01/08/soot-android-instrumentation/) die onlangs Dalvik-ondersteuning heeft toegevoegd.
Anton Kochkov
2013-03-20 14:26:35 UTC
view on stackexchange narkive permalink

Ik denk dat het mogelijk moet zijn, zelfs met de huidige Java-decompilers, door hun code te patchen. Ze hebben minstens één groot verschil - terwijl JVM stack-gebaseerd is, is Dalvik register-gebaseerd. Dit verschil kan worden afgehandeld met niet zo veel code. Tweede verschil - bytecode-indeling. Je hebt dus code nodig die het Dalvik-bytecode-formaat kan demonteren.

samuirai
2013-04-10 15:17:00 UTC
view on stackexchange narkive permalink

Vergeet http://dexter.dexlabs.org/ niet - Dexter is een statische Android-applicatieanalysetool.

JayXon
2015-01-25 03:06:29 UTC
view on stackexchange narkive permalink

jadx heeft zowel CLI als GUI en is open source.

Nik NexAndrX
2015-02-23 15:35:19 UTC
view on stackexchange narkive permalink

Een ander hulpmiddel is Bytecode Viewer :

https://github.com/Konloch/bytecode-viewer

Bytecode Viewer is een geavanceerde lichtgewicht Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau , GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger en meer. Het is volledig in Java geschreven en het is open source. Het wordt momenteel onderhouden en ontwikkeld door Konloch.

Een voorbeeld van gebruik zou meer dan welkom zijn! :-)
user1677
2013-04-10 06:58:28 UTC
view on stackexchange narkive permalink

Naast de software die door Igor wordt vermeld, zijn er ook tools zoals apktool die kunnen worden gebruikt om code te decompileren: het transformeert de dalvik-bytecode naar smali, een taal die specifiek is voor de virtuele dalvik-machine (zie instructies / opcodes hier bijvoorbeeld).

U kunt ook bronnen in de applicatie bewerken en de applicatie opnieuw bouwen (maar het zal de originele handtekening verbreken omdat u opnieuw -teken het met uw eigen sleutel)

Sorry, maar wat u beschrijft is * demontage *, niet decompilatie. Smali is gewoon een manier om de bytecode van Dalvik weer te geven, het is geen taal op hoog niveau zoals Java.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...