Otázka:
Dekompilace aplikace pro Android
Mellowcandle
2013-03-20 14:02:41 UTC
view on stackexchange narkive permalink

Kód Java pro Android je kompilován do bajtového kódu Dalvik, který je docela dobře čitelný. Zajímalo by mě, je možné teoreticky i v praxi napsat dekompilační software pro Dalvikův bajtový kód?

šest odpovědi:
Igor Skochinsky
2013-03-20 14:41:43 UTC
view on stackexchange narkive permalink

Je to nejen možné, ale bylo to již provedeno, nejen jednou. Tady jsou tři, o kterých vím, a může jich být více.

  1. Kivlad od Cody Brocious

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

  2. DAD by Zost (projekt Androguard):

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

  3. JEB od Nicolase Falliere (komerční)

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

Pak existují všechny Java dekompilátory, které lze použít po použití dex2jar nebo odvážit se v binárce Dalvik.

Teoreticky fungují všechny dekompilátory Java a soubory třídy Dalvik lze transformovat (zpět) do souborů třídy Java. Kromě výše uvedených odkazů byste se měli podívat na [Soot] (http://www.bodden.de/2013/01/08/soot-android-instrumentation/), který nedávno přidal podporu Dalvik.
Anton Kochkov
2013-03-20 14:26:35 UTC
view on stackexchange narkive permalink

Myslím, že by to mělo být možné i se současnými dekompilátory Java, opravou jejich kódu. Mají alespoň jeden velký rozdíl - zatímco JVM je založen na zásobníku, Dalvik je založen na registrech. Tento rozdíl by bylo možné zvládnout s ne tolik kódu. Druhý rozdíl - formát bytecode. Potřebujete tedy použít kód, který je schopen rozebrat formát Dalvik bytecode.

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

Nezapomeňte http://dexter.dexlabs.org/ - Dexter je statický nástroj pro analýzu aplikací pro Android.

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

jadx má CLI i GUI a je to open source.

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

Dalším nástrojem je Bytecode Viewer :

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

Bytecode Viewer je pokročilý odlehčený prohlížeč Java Bytecode, 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 a další. Je napsán kompletně v Javě a je otevřený. V současné době je udržován a vyvíjen společností Konloch.

Příklad použití by byl více než vítán! :-)
user1677
2013-04-10 06:58:28 UTC
view on stackexchange narkive permalink

Kromě softwaru uvedeného Igorem existují i ​​nástroje jako apktool, které lze použít k dekompilaci kódu: transformuje dalvik bytecode na smali, jazyk specifický pro virtuální stroj dalvik (viz pokyny / opcodes zde například).

Můžete také upravit zdroje v aplikaci a vytvořit ji zpět (ale původní podpis se rozbije, protože budete muset znovu -přihlaste to svým vlastním klíčem)

Omlouváme se, ale to, co popisujete, je * demontáž *, nikoli dekompilace. Smali je jen způsob, jak reprezentovat Dalvik bytecode, není to jazyk na vysoké úrovni, jako je Java.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...