APK基本結構
解壓後的安卓目錄
目錄名 | 意義 |
---|---|
assets | 資源檔案(圖檔、音頻、資料庫、網頁、配置檔案等) |
res | 資源檔案,需要編譯(布局)圖檔、圖示、字元串、樣式、顔色 |
lib | 各種平台下使用的對應的so檔案 |
libs | 第三方包、存放so檔案 |
META-INF | APK簽名檔案 |
resources.arsc | 資源加密(語言包) |
AndroidManifest.xml | 清單檔案(圖示、界面、權限、入口) |
classes.dex | 源代碼 |
虛拟機
JVM
虛拟機,運作的是
Java
檔案編譯後的
.java
檔案
.class
DVM
Android4.4 及以前使用的都是 Dalvik 虛拟機,
- Apk 在打包的過程中會先将 java 等源碼通過
編譯成javac
檔案.class
- Dalvik 虛拟機隻會執行
檔案,是以dx會将.dex
檔案轉換成Dalvik虛拟機執行的.class
檔案。.dex
- Dalvik 虛拟機在啟動的時候會先将
檔案轉換成快速運作的機器碼,我們的 app啟動慢,是因為應用冷啟動的時候有一個合包的過程 Dalvik 虛拟機的 JIT 特性。.dex
ART
ART 虛拟機是在 Android5.0 才開始使用的Android虛拟機
- ART 虛拟機必須要相容 Dalvik 虛拟機的特性,但是ART有一個很好的特性AOT(ahead of time),這個特性就是我們在安裝APK的時候就将dex直接處理成可直接供ART虛拟機使用的機器碼
- ART 虛拟機将
檔案轉換成可直接運作的.dex
檔案,ART虛拟機天生支援多 dex,是以也不會有一個合包的過程,是以ART虛拟機會很大的提升APP冷啟動速度。.oat
-
的是Java代碼,是以Xposed hook
不支援Xposed 87版
以及以上系統。5.0
-
支援安卓Xposed 89版
5.0-7.1
Mac 正向開發環境配置
IDE、JDK、SDK下載下傳
選擇 Mac 環境包
IDE中心 JDK下載下傳 SDK下載下傳
IDE、JDK、SDK配置
把這三個檔案解壓放到工作目錄中,因為後面要連結這裡,你要記住這個目錄位址;然後我們先安裝jdk
如果是按照教程按照的話,那麼 JDK 路徑在
/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
建立 android studio 項目
建立新項目
項目結構概述
配置模拟器
選擇模拟器機型運作
如果沒有機型那麼點選 create 一個
按照好之後運作,hellow word 再現江湖
簽名
為什麼要簽名
統要求每一個Android應用程式必須要經過數字簽名才能夠安裝到系統中,也就是說如果一個Android應用程式沒有經過數字簽名,是沒有辦法安裝到 系統中的!Android通過數字簽名來辨別應用程式的作者和在應用程式之間建立信任關系,不是用來決定最終使用者可以安裝哪些應用程式。這個數字簽名由應 用程式的作者完成,并不需要權威的數字證書簽名機構認證,它隻是用來讓應用程式包自我認證的。
生成 jks 簽名
建立簽名
導入簽名檔案
逆向工具下載下傳
mac 環境下玩逆向, 很多工具不用了, 需要配置 windows 虛拟機
jadx
作者目前在更新
- 官方代碼倉庫
- GUI版本下載下傳
- 優點 更新快,反編譯牛逼,代碼清晰
- 缺點 吃記憶體,不過還好我是 32G 記憶體哈哈
JEB
- 官方網站
- 優點 可動态調試, 記憶體消耗小
- 缺點 收費, 反編譯出來的java僞代碼展示性不夠友好
Android Killer
Mac 用不了,隻能裝在 win10 虛拟機上。作者已經停止更新但部分功能比較好用。
GDA
Mac 用不了,最後一次更新是2015年, 作者看來看來打算更新了
- 下載下傳網址
逆向輔助工具
模拟器
想擷取python學習資料的小夥伴可以加QQ:728711576