題:
反編譯Android應用程序
Mellowcandle
2013-03-20 14:02:41 UTC
view on stackexchange narkive permalink

Android Java代碼被編譯為Dalvik字節代碼,這是很容易理解的。我想知道,在理論上和實踐上是否有可能為Dalvik字節碼編寫反編譯軟件?

六 答案:
Igor Skochinsky
2013-03-20 14:41:43 UTC
view on stackexchange narkive permalink

這不僅可能,而且已經完成,而不僅僅是一次。這是我所知道的三個,而且可能還有更多。

  1. 科迪·布羅維奇的基夫拉德

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

  2. DAD(Androguard項目):

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

  3. JEB,作者Nicolas Falliere(商業)

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

  4. ol>

    然後,所有使用 dex2jar 的Java反編譯器都可以使用或Dalvik二進製文件上的 Dare

從理論上講,所有Java反編譯器都可以工作,並且Dalvik類文件可以轉換(返回)為Java類文件。除了上面的鏈接之外,您可能還想看看最近增加了Dalvik支持的[Soot](http://www.bodden.de/2013/01/08/soot-android-instrumentation/)。
Anton Kochkov
2013-03-20 14:26:35 UTC
view on stackexchange narkive permalink

我認為,即使是當前的Java反編譯器,也可以通過修補其代碼來實現。它們至少有一個很大的區別-JVM是基於堆棧的,而Dalvik是基於寄存器的。不用太多代碼就可以處理這種差異。第二個區別-字節碼格式。因此,您需要使用能夠反彙編Dalvik字節碼格式的代碼。

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

別忘了 http://dexter.dexlabs.org/- Dexter是一個靜態的android應用程序分析工具。

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

jadx具有CLI和GUI,並且是開源的。

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

另一個工具是字節碼查看器

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

字節碼查看器是高級輕量級Java字節碼查看器,GUI Java反編譯器,GUI字節碼編輯器,GUI Smali,GUI Baksmali,GUI APK編輯器,GUI Dex編輯器,GUI APK反編譯器,GUI DEX反編譯器,GUI Procyon Java反編譯器,GUI Krakatau ,GUI CFR Java反編譯器,GUI FernFlower Java反編譯器,GUI DEX2Jar,GUI Jar2DEX,GUI Jar-Jar,十六進制查看器,代碼搜索器,調試器等。它完全用Java編寫,並且是開源的。 Konloch目前正在維護和開發它。

一個用法的例子將是不受歡迎的! :-)
user1677
2013-04-10 06:58:28 UTC
view on stackexchange narkive permalink

除了Igor列出的軟件外,還有 apktool之類的工具可用於反編譯代碼:它將dalvik字節碼轉換為smali,這是dalvik虛擬機專用的語言(請參閱指令/操作碼此處)。

您還可以在應用程序中編輯資源,然後重新構建應用程序(但是由於您必須重新簽名,它會破壞原始簽名, -用您自己的密鑰簽名)

抱歉,您要描述的是*反彙編*,而不是反編譯。 Smali只是表示Dalvik字節碼的一種方式,它不是像Java這樣的高級語言。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...