系列開篇,準備將方向由安卓開發轉向移動安全,首先需要瞭解的就是Android的逆向工程。 現在簡要介紹初級階段需要的工具以及如何獲取並正確配置他們 如果在資源獲取方面遇到困難,留下郵箱我會將所有東西打包發給你 JRE,JDK,SDK,NDK 關於這些工具包的配置不做贅述。 apktool apkto ...
系列開篇,準備將方向由安卓開發轉向移動安全,首先需要瞭解的就是Android的逆向工程。
現在簡要介紹初級階段需要的工具以及如何獲取並正確配置他們
如果在資源獲取方面遇到困難,留下郵箱
JRE,JDK,SDK,NDK
關於這些工具包的配置不做贅述。
apktool
apktool的作用是將apk文件解包並解密其中部分資源文件與配置文件,並將dex翻譯成為smali彙編器語言
- 首先在github中搜索apktool,進入其項目頁面,根據其中的官網地址進入並下載最新的jar文件
- 這裡是apktool的官網,鏈接若失效請告知
- 這裡是apktool的項目地址
- 為了方便在任何路徑下調用apktool命令,我們將對java-jar的調用包裝在一個batch文件中,逆向環境推薦windows
- 建一個目錄,apktool,先把jar文件扔進去
- 在apktool目錄中新建apktool.bat,寫入下列內容:
@"%~dp0d2j_invoke.bat" brut.apktool.Main %*
- 新建d2j_invoke.bat,寫入下列內容:
setlocal enabledelayedexpansion
set LIB=%~dp0lib
set CP=
for %%X in ("%LIB%"\*.jar) do (
set CP=!CP!%%X;
)
java -Xms512m -Xmx1024m -cp "%CP%" %*
- 新建文件夾LIB,將apktool的jar放入
- 進入系統設置,將apktool.bat所在目錄加入系統環境變數PATH
- 打開命令行,輸入
apktool
測試可用性
dex2jar
dex2jar的作用是將dex文件轉成jar文件,或者互轉以及其他,註意baksmali已包含其中
- dex2jar的配置過程相對簡單,因為其中已經寫好了batch文件便於調用
- 首先在github中搜索dex2jar,進入其項目界面,根據README中的相關鏈接去下載
- 這裡是dex2jar的項目地址
- 同樣的仿照上面的思路,新建dex2jar目錄,將包中的lib文件夾以及其他的文件直接放在這個目錄下
- 將dex2jar目錄添加進系統環境變數
- 打開命令行,輸入
d2j-dex2jar
測試可用性,註意更改過環境變數需要重開命令行
jdgui
一個jar文件反編工具,能夠直接將jar文件反成java語言級別,配合dex2jar非常有用
- google並下載即可
fileseek
一個強大的文件內容搜索工具,提供具體行數,查找關鍵詞以及索引時很有用
- google並下載即可
signapk
你需要給重新打包的apk文件簽名
- 下麵提供兩種快捷實現的工具,當然你也可以拷貝出其中的
signapk.jar
platform.x509.pem
platform.pk8
三個核心文件自行操作 - pwelyn/SignapkTools: Windows右鍵Android簽名工具
- achellies/SignApk: Windows下android自動簽名工具
- 關於如何自行操作,你可以使用此命令手動對apk文件進行簽名
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk
,其中old.apk
是未經過簽名的apk文件,而new.apk
是想要輸出的文件名,為了方便起見你可以寫一個batch文件自動接收後兩個參數,此處暫且不表
Hex Editor
你需要一個能夠讀寫二進位文件的工具
- 個人推薦Active@ Disk Editor,免費
- 其他編輯器大全,看相關的維基百科-Comparison of hex editors
總結
- 現階段所需要的大概就是這麼多了,今後隨著研究的深入可能還會藉助某些更強大的工具
- 希望所有有意學習android逆向的人能夠堅持到最後吧
hwding