28
Android Hook - Xposed Framework [Android Penetration Testing] Elven 2016/06 捝䨗䨝

Android Hook - Xposed Framework (Elven Liu)

Embed Size (px)

Citation preview

Page 1: Android Hook - Xposed Framework (Elven Liu)

Android Hook - Xposed Framework

[Android Penetration Testing] Elven

2016/06

Page 2: Android Hook - Xposed Framework (Elven Liu)

Who am I?• Elven Liu

• HITCON GIRLS [Android Penetration Testing]

[email protected]

• www.linkedin.com/in/liu-elven

Page 3: Android Hook - Xposed Framework (Elven Liu)

Outline

• Zygote

• Xposed Framework

• Hook System Clock

Page 4: Android Hook - Xposed Framework (Elven Liu)

Zygote

Page 5: Android Hook - Xposed Framework (Elven Liu)

Zygote

• =

• zygote system/bin/app_process

• Android Zygote

Page 6: Android Hook - Xposed Framework (Elven Liu)

Activity Service

New Activity Process

Accept Socket Connection

Select fd

Read Argument

Parse Argument

Fork() a app_process

Zygote

Socket

fork() Android

Page 7: Android Hook - Xposed Framework (Elven Liu)

Activity Service

New Activity Process

Accept Socket Connection

Select fd

Read Argument

Parse Argument

Fork() a app_process

Zygote

Fork()

Page 8: Android Hook - Xposed Framework (Elven Liu)

Xposed Framework

Page 9: Android Hook - Xposed Framework (Elven Liu)

• rovo89, Tungstwenty

• Source: https://github.com/rovo89

• Module Repository: http://repo.xposed.info/

• systemui, systemserver…….

Page 10: Android Hook - Xposed Framework (Elven Liu)

• XposedBridge API xposed framework JavaJar Package

• XposeInstall Xposed APP

• Xposed: xposed app_process /system/bin/ app_process .orig

Page 11: Android Hook - Xposed Framework (Elven Liu)

WARNING ROM Xposed Xposed Recovery

Page 12: Android Hook - Xposed Framework (Elven Liu)

Activity Service

New Activity Process

Accept Socket Connection

Select fd

Read Argument

Parse Argument

Fork() a app_process

Zygotecom.android.internal.os.ZygoteInit

Page 13: Android Hook - Xposed Framework (Elven Liu)

Activity Service

New Activity Process

Accept Socket Connection

Select fd

Read Argument

Parse Argument

Fork() a app_process

Zygotede.robv.android.xposed.XposedBridge

Page 14: Android Hook - Xposed Framework (Elven Liu)

Activity Service

New Activity Process

Accept Socket Connection

Select fd

Read Argument

Parse Argument

Fork() a app_process

Zygotede.robv.android.xposed.XposedBridge

Input

Page 15: Android Hook - Xposed Framework (Elven Liu)
Page 16: Android Hook - Xposed Framework (Elven Liu)

Android

XposedInstaller APK (4.0)

URL: http://repo.xposed.info/module/

Xposed Bridge API (54)

URL: http://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067

Page 17: Android Hook - Xposed Framework (Elven Liu)

Hook

Static Analysis

Hook

Find Target APK

Page 18: Android Hook - Xposed Framework (Elven Liu)

Find Target APK

Static Analysis

reset

Decompiler apk

Find Target*package Name *class*function

Create a Project

Import xposed api

write java code

Root

Hook Success

exposed install

Page 19: Android Hook - Xposed Framework (Elven Liu)

Hook System Clock

https://github.com/rovo89/XposedBridge/wiki/Development-tutorial

Page 20: Android Hook - Xposed Framework (Elven Liu)

Create a Project

Page 21: Android Hook - Xposed Framework (Elven Liu)

build.gradle

1

2

3

Page 22: Android Hook - Xposed Framework (Elven Liu)
Page 23: Android Hook - Xposed Framework (Elven Liu)

AndroidManifest.xml <meta-data

android:name="xposedmodule"

android:value="true"/>

<meta-data

android:name="xposeddescription"

android:value="Hooking Module for Clock" />

<meta-data

android:name="xposedminversion"

android:value="54" />

Page 24: Android Hook - Xposed Framework (Elven Liu)

assets

Page 25: Android Hook - Xposed Framework (Elven Liu)

create java class

• Xposed API

• http://api.xposed.info/reference/de/robv/android/xposed/XC_MethodHook.MethodHookParam.html

Page 26: Android Hook - Xposed Framework (Elven Liu)

Demo

Page 27: Android Hook - Xposed Framework (Elven Liu)
Page 28: Android Hook - Xposed Framework (Elven Liu)