android 逆向之旅(下)

21
Android 逆逆逆逆 ( 逆 )

Upload: pu-lee

Post on 15-Apr-2017

191 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Android 逆向之旅(下)

Android 逆向之旅 ( 下 )

Page 2: Android 逆向之旅(下)
Page 3: Android 逆向之旅(下)

實驗環境• 手機實機 ( 室友舊手機… ) : HTC Sensation XL with Beats Audio

X315e• Rooted

• HT 版 pad 可以在 root 環境下執行• 針對 HT 版分析• 環境:• Android 4.0.3• Windows 8.1 64bit

• Android NDK• Android SDK

Page 4: Android 逆向之旅(下)

Xposed• 替換 app_process• On package load Hook• Load libFKPAD.so to jp.gunho.pad

Page 5: Android 逆向之旅(下)

libFKPAD.so• 載入時間點為 libpad.so 已經解密後• 直接從 memory dump data• Read /proc/self/maps• Find start, end address of segments of libpad.so

Page 6: Android 逆向之旅(下)

靜態分析• 目前狀態:• 有四個 Raw memory dump file• 知道當前 maps 映射表

• 拼湊現場• IDA load each data at its location

Page 7: Android 逆向之旅(下)

靜態分析

Page 8: Android 逆向之旅(下)

靜態分析• 找出符號表

Page 9: Android 逆向之旅(下)

ELF 結構

Page 10: Android 逆向之旅(下)
Page 11: Android 逆向之旅(下)
Page 12: Android 逆向之旅(下)
Page 13: Android 逆向之旅(下)

靜態分析 – 找出符號表• Find program header of type PT_DYNAMIC• 撈出 SYMTAB, STRTAB 等表訊息

Page 14: Android 逆向之旅(下)

SYMTAB

Page 15: Android 逆向之旅(下)

STRTAB

Page 16: Android 逆向之旅(下)

靜態分析 --- 針對有興趣函式分析

Page 17: Android 逆向之旅(下)

動態分析• 觀察參數 => Hook• 動態分析觀察• android_server (ida)

• 規避雙進程保護• 一個進程只能被 attach 一次

Page 18: Android 逆向之旅(下)

規避方式• Hook + fork• 凍結 (Sleep) 原進程

Page 19: Android 逆向之旅(下)
Page 20: Android 逆向之旅(下)

成果

Page 21: Android 逆向之旅(下)

Demo• https://www.youtube.com/watch?v=QpO2mF7egqU