android 逆向之旅(上)

22
Android 逆逆逆逆 (逆) 逆逆逆 A 逆逆 06/11/2022 逆逆逆逆 逆逆逆逆逆逆逆逆 逆逆逆逆

Upload: pu-lee

Post on 15-Apr-2017

168 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Android 逆向之旅(上)

Android 逆向之旅 ( 上 )

資工三 A 李樸

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Page 2: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Agenda•逆向動機•基礎知識•Demo

Page 3: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

逆向動機• 分析惡意 APP• 屏蔽廣告• 分析有興趣功能• 分析系統漏洞• 破解

Page 4: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Agenda•逆向動機•基礎知識•Demo

Page 5: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Android 架構

Page 6: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Dalvik VMRegister-based architecture

Page 7: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

APK• 取得途徑:網路,自己寫,手機內……• 已安裝 APP: /data/app

Page 8: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

APK Format• ZIP File• Content:

o META-INFo libo reso assetso classes.dexo resources.arsco AndroidManifest.xml

Page 9: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Dex Format• Dalvik Executable format• 工具:

o Dex2Jaro JD-GUI

• 可以快速分析 App 於 Java 層行為• 代碼混淆: ProGuard , APKProtect

Page 10: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

修改 – 拆包• ApkTool.jar• java -jar apktool.jar d target.apk target• smali: Opcode(ByteCode) of Dalvik VM• 從 JAR 分析後找對應 smali 修改

Page 11: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

修改 -- 回封• ApkTool.jar• java -jar apktool.jar b target• 簽名後才能於裝置安裝• signapk

Page 12: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Agenda•逆向動機•基礎知識•Demo

Page 13: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Demo……?

Page 14: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo• Origin App:

Page 15: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo – 拆包

Page 16: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo• Smali:

o file HelloAndroid$1• .class Lcom/example/helloandroid/HelloAndroid$1;• .super Ljava/lang/Object;• .source "HelloAndroid.java“• # interfaces• .implements Landroid/view/View$OnClickListener;

o Onclick: startActivityo ==> Abount Button Listener

Page 17: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo• Smali:

o File HelloAndroid$2• .class Lcom/example/helloandroid/HelloAndroid$2;• .super Ljava/lang/Object;• .source "HelloAndroid.java"• # interfaces• .implements Landroid/view/View$OnClickListener;

o Onclick Listener of Check Button

Page 18: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo• 關鍵

Page 19: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo – 封包 & 簽名

Page 20: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Pseudo Demo• Result:

Page 21: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

覺得複雜 ?• Native Library Disassembly• ELF 結構• ELF 加密節• Init_array 自解密• 模擬器檢測, root 檢測,文件 checksum 檢測……• …… 待續

Page 22: Android 逆向之旅(上)

05/02/2023 電算中心 網路系統工讀小組 工讀分享

Thank you for your attention!