【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )
文章目錄
- 一、Android 逆向方法
- 1、靜態(tài)逆向解析
- 2、函數(shù)調(diào)用分析
- 3、動態(tài)運(yùn)行跟蹤
- 4、運(yùn)行日志分析
- 5、文件格式解析
- 6、敏感信息分析
- 7、網(wǎng)絡(luò)信息監(jiān)控
- 8、軟件動態(tài)調(diào)試
- 9、環(huán)境偽裝模擬
一、Android 逆向方法
1、靜態(tài)逆向解析
靜態(tài)逆向解析 : 靜態(tài)解析 APK 安裝文件 , 反編譯 APK 文件 , 然后反匯編 Dex 字節(jié)碼文件 , SO 動態(tài)庫文件 ; 分析這些二進(jìn)制文件細(xì)節(jié) ;
2、函數(shù)調(diào)用分析
函數(shù)調(diào)用分析 : 研究應(yīng)用中調(diào)用了哪些函數(shù) , 如 : 資源或目錄中某些文件被加密了 , 需要解密操作 , 嘗試分析 Java / OpenSSL 等的加密解密 API 方法 , 攔截這些方法 , 獲取相應(yīng)的秘鑰 ; 獲取到秘鑰后 , 可以自己實(shí)現(xiàn)一個算法 , 將加密文件還原成原始數(shù)據(jù) ;
3、動態(tài)運(yùn)行跟蹤
動態(tài)運(yùn)行跟蹤 : 將程序運(yùn)行起來 , 運(yùn)行中動態(tài)分析數(shù)據(jù) ; 如 : 做一些函數(shù)攔截 , 攔截 Java 的字符串 String 的 構(gòu)造函數(shù) 或 追加函數(shù) , 按照時間順序 , 記錄函數(shù)的結(jié)果 , 然后找到關(guān)鍵信息的拼接過程 , 如 : 訪問網(wǎng)絡(luò)時 , 必然拼接 URL 地址 , 這些都是字符串 , 比較容易分析 ;
4、運(yùn)行日志分析
運(yùn)行日志分析 : 針對一個幾百兆的大型的程序 , 一般不會上來就進(jìn)行靜態(tài)分析 , 很難接近應(yīng)用的核心部分 ; 這種情況下 , 優(yōu)先監(jiān)控這個應(yīng)用的運(yùn)行日志 , 執(zhí)行應(yīng)用相關(guān)操作 , 查看哪些操作會產(chǎn)生哪些日志 , 之后根據(jù)日志信息 , 定位對應(yīng)的代碼位置 , 然后進(jìn)行 靜態(tài) / 動態(tài)分析 ;
5、文件格式解析
文件格式解析 : 解析編譯后的 SO 等格式的文件 , 提取重要的信息 , 如解析 SO 動態(tài)庫 , 提取其中的 jni 入口方法 , 然后到 Dex 字節(jié)碼文件中查詢對應(yīng)的 jni 方法調(diào)用 ;
有時候可以獲取代碼中的以明文形式聲明的 密碼 , 秘鑰 , 字符串 相關(guān)信息 ; 解析 SO 動態(tài)庫中的所有字符串信息 , 通過觀察特征 , 位數(shù) , 可以知道哪些字符串可能是秘鑰字符串 , IP 地址 , URL 地址 , 域名 等 ;
6、敏感信息分析
敏感信息分析 : 分析 敏感的 函數(shù)名 , 類名 , 字符串 , 文件名 ;
7、網(wǎng)絡(luò)信息監(jiān)控
網(wǎng)絡(luò)信息監(jiān)控 : 針對有網(wǎng)絡(luò)功能的應(yīng)用 , 應(yīng)用需要與服務(wù)器進(jìn)行交互 , 如果網(wǎng)絡(luò)交互沒有進(jìn)行防護(hù)措施 , 如使用 HTTP 鏈接 , 或 未加密數(shù)據(jù) 等 , 很容易被截獲明文數(shù)據(jù) , 這些數(shù)據(jù)都需要進(jìn)行二次加密 ;
網(wǎng)絡(luò)游戲 , 如果被截獲了數(shù)據(jù) , 后果是災(zāi)難性的 , 外掛就做出來了 ;
8、軟件動態(tài)調(diào)試
軟件動態(tài)調(diào)試 : 在調(diào)試環(huán)境中 , 調(diào)試軟件 , 可以設(shè)置斷點(diǎn) ; 通過修改寄存器跳過調(diào)試檢測 ;
9、環(huán)境偽裝模擬
環(huán)境偽裝模擬 : 使用 PC 電腦機(jī)上運(yùn)行 Android 系統(tǒng) , 應(yīng)用為了避免在 PC 上運(yùn)行 , 刪除了 x86 架構(gòu)的 so 動態(tài)庫 ;
使用 雷電模擬器 等 模擬器 , 可以在 PC 電腦上運(yùn)行 ARM 庫 , 只是運(yùn)行速度慢一些 ;
總結(jié)
以上是生活随笔為你收集整理的【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 插件化】现有的针对插件
- 下一篇: 【Android 逆向】Android