有很多工具,有些是更底層的,有些是在這些底層工具的基礎上構建的,以使工具更好,更完善。
這是我的最愛:
。 dex
文件轉換為文本 .smali
類。手動解壓縮APK後可以使用。更多信息:使用baksmali和smali重新打包APK文件 看上去也很有希望:
編輯2019年11月:
如果您想修改代碼,那麼我所知道的唯一真正的選擇是 bak / smali
, apktool
為它提供了有用的包裝。
如果您只想了解代碼,則有很多選擇。例如,您可以使用 Enjarify或dex2jar將其轉換為jar文件,然後使用任何Java字節碼工具或反編譯器。還有一些反編譯器具有原生Android支持。
在台式機上
您可以嘗試銻的答案。
還請檢查此評論(該聲明在上使用了dex2jar。 dex文件和jar文件上的JD-GUI):
如果要直接在手機上反編譯apk ,顯示Java可能是一個不錯的選擇選項。您可以選擇一個apk文件並等待。然後,您可以獲取該應用程序的Java源代碼。儘管有很多改進的餘地,但是它很方便。
遇到JNI / NDK
時,您必須反編譯 .so
lib
文件夾中的code>文件。因此,您可能需要反編譯它們,它們通常是arm linux共享庫。
我目前正在開發一個輔助應用程序,可以幫助您反編譯針對ARM和x86的本機庫以及其他CPU指令。
發布
或者您可以訪問 git存儲庫(Android-Disassembler)。
但是,總的來說,不幸的是,一些開發人員通過更改類,方法和變量的名稱來阻止或使其難以反編譯apk文件。因此,您可能會像許多倒車例行程序一樣遇到困難。
希望我的回答仍然有所幫助。
GDA:支持APK,DEX,ODEX和OAT文件。 Dalvik字節碼反編譯器完全用c ++編寫。因此,與大多數應用程序分析工具不同,GDA不需要依賴Java平台,並且使用Bytecode無需Smali代碼轉換即可直接轉換為Java代碼。因此它更簡潔,更便攜,更快。
有什麼工具可以幫助檢查代碼,對其進行編輯並將其編譯回apk?
請參見 https://buildapks.github.io/buildAPKs /獲取有關所需工具的信息。