2016年5月11日 星期三

[反組譯工具]超好用的APK反組譯工具-BytecodeViewer

簡介
自APP開發興起後,Android APP的反組譯(decompile)領域逐漸開始是被關注的領域。因APP初期保護機制的不完善以及惡意程式的興起(例:詐騙簡訊.apk)後,逆向工程的領域一直是電腦技術人員專精研究的部份。

  • 駭客可藉由破解正常的apk程式後,偽冒正常的apk程式騙取使用者個資,以達到竊取的目的。
  • 資安人員可藉由分析駭客撰寫的惡意apk,來瞭解惡意程式主要的目的與行為模式。

初期在分析apk的過程中,一般分析人員大多使用下列的工具作分析與操作過程

  • 更改apk副檔案為壓縮檔案(rar)
  • 解壓縮(rar)檔案後,取出classes.dex
  • 利用smali工具作AndroidManifest.xml的反組譯來還原並讀取apk的權限功能
  • 使用dex2jar與jd-gui搭配,讀取apk撰寫的java code

而這樣的反組譯(decompile)的過程與工具的使用,往往需要具備有cmd指令與基礎工具操作經驗的人員作分析,使得有興趣研究的初學者學習上面臨到困難而容易放棄。

若用於其他線上反組譯分析工具,也會將apk上傳至遠端主機上的安全疑慮。那有沒有最簡單的分析工具而且又可以在本機上執行的呢?

本文推薦BytecodeViewer作為apk decompile工具,因BytecodeViewer在操作過程中,相當好用,該軟體把常用的decompile工具打包起來,並將之圖形化。分析人員只要會作基本的操作後,再讀取程式碼內容即可。

BytecodeViewer官方軟體下載:http://bytecodeviewer.com/

BytecodeViewer軟體操作過程

BytecodeViewer下載並解壓縮完成後,點擊BytecodeViewer應用程式

BytecodeViewer開啟後的初始畫面

BytecodeViewer匯入apk檔案時,操作過程 file>add

apk檔案匯入完成後,在file視窗中,會呈現已經反組譯完成的檔案階層式架構

在file視窗中,點選Decoded Resources功能選單,即可快速找到android開發所設定的相關權限功能AndroidManifest.xml。

進一步點擊BytecodeViewer所含的功能視窗後,可以直接拆開原本程式撰寫人員的java code,因此作分析時是相當好用的。但若apk已有設定程式保護機制(混淆)的話,則反組譯出來的結果仍會有部份的不完全。

結論
BytecodeViewer是一個相當便利的反組譯工具,分析人員免除傳統使用不同的工具逐一拆解程式,而可以快速有效率的完成解析的動作,剩下便是分析各類型的java代碼來找出惡意apk的行為模式,可謂是方便有效的工具。

本文章連結:http://linjsian.blogspot.tw/2016/05/decompile-apk-bytecodeviewer.html
本文歡迎轉載,請注明出處

沒有留言:

張貼留言