說在前面
最近也是實在想折騰,先入門接觸接觸。先研究研究用於逆向工程Android apk文件的工具-Apktool。
目錄
爲什麼要用Apktool?
俗話說得好,工欲善其事,必先利其器。作爲一個碼農,只知道如何寫代碼是很沒有意思的。應該知道如何去看源代碼。
安卓應用apk文件不僅僅是包含有resource和編譯的java代碼的zip文件,如果你嘗試用解壓工具(如好壓)解壓後,你將會獲得classes.dex和resource.arsc等文件。如果你很好奇打開這些文件,你可能很矇蔽,根本看不懂,這時候就需要有個工具來幫你了。
Apktool 簡介
用於逆向工程第三方,封閉式二進制Android應用程序的工具。它可以將資源解碼爲近乎原始的形式,並在進行一些修改後重建它們。它還使得使用應用程序更容易,因爲項目如文件結構和一些重複性任務的自動化,如構建apk等。
它不適用於盜版和其他非法律用途。它可用於本地化,添加一些功能或支持自定義平臺,分析應用程序等等。
咱們主要是用來查看程序佈局文件、圖片等資源,方便大家學習一些很好的佈局。
特徵
- 拆卸資源近原始形式(包括
resources.arsc
,classes.dex
,9.png.
和XMLs
) - 將解碼後的資源重建爲二進制APK / JAR
- 組織和處理依賴於框架資源的APK
- Smali調試(刪除了
2.1.0
有利於IdeaSmali) - 幫助重複性任務
要求
- Java 7(JRE 1.7)以上
- Android SDK,AAPT和smali的基礎知識
Apktool 安裝
快速檢查
java -version在命令行/命令提示符上執行是否返回1.8或更高?
安裝Apktool
下載Windows 包裝器腳本
下載Windows 包裝器腳本(右鍵單擊,將鏈接另存爲apktool.bat
)
當然也可以 右鍵 打開鏈接,然後複製,然後桌面新建文本.txt,然後將複製的粘貼進去,保存,將名字改爲apktool.bat;
文本內容:
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %*
下載apktool-2
(在這裏找到最新的)
這裏我將使用目前最新的2.3.4進行演示,將下載的jar重命名爲 apktool.jar
移動到Windows目錄
官網給予的步驟是,將兩個文件(apktool.jar
&apktool.bat
)移動到Windows目錄(通常C://Windows
),當然可以將這兩個文件放在任何位置,然後將該目錄添加到Environment Variables System PATH變量中。
這裏我放在了E盤,新建文件夾apktool:
添加至環境變量
環境變量只是告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到那些目錄下去找
將路徑 D:\apktool\ 複製進去即可;
嘗試apktool通過命令提示符運行
這時候你只要進入,找到 apktool.bat,即可:
包含了 一些基礎信息,以及一些常用操作用法,比如:
好了,到此就安裝完成了,下一篇 將給大家介紹一下如何使用。
參考文獻: