Android安全–使用Xposed框架进行的简单HOOK

前面讲到使用Cydia Substrate进行hook,原文链接:http://www.alonemonkey.com/cyidasubstrate.html

刚刚试了下Xposed框架进行HOOK,顺便记录下:

首先下载Xposed Installer,也就是Xposed安装器,下载地址为:http://repo.xposed.info/module/de.robv.android.xposed.installer

下载完直接安装即可,初次安装会出现Xposed框架未激活,点击进去点击安装/更新,然后授予root权限。

image

安装完成之后点击重启,重启后发现已激活状态。

QQ截图20150826232316

然后我们继续针对上次写的getCoin Demo进行HOOK。

一、新建Android工程,然后在AndroidManifest.xml配置Xposed的基本信息。

image

上面写的版本号是54,也就是我们用jar的版本号。

二、在工程目录下新建一个lib文件夹,将XposedBridgeApi-54.jar拷贝进去,然后右键–Build Path–Add to Build Path。

image

三、在assets目录下新建一个xposed_init文件。编辑内容为:包名+类名,这里我写的是com.monkey.myxpose.Main

四、编写代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.monkey.myxpose;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;

public class Main implements IXposedHookLoadPackage{

    @Override
    public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
        // TODO Auto-generated method stub
        if(!lpparam.packageName.equals("com.monkey.getcoin")){
            return;
        }
       
        XposedHelpers.findAndHookMethod("com.monkey.getcoin.MainActivity", lpparam.classLoader, "getCoin",new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                // TODO Auto-generated method stub
                //super.beforeHookedMethod(param);
                param.setResult(99999);
            }
        });
    }
   
}

五、安装apk,安装完之后,打开Xposed Installer,点击模块,勾选我们刚刚安装的apk。

image

六、软重启,打开我们hook的Demo。

image

image

现在看到值已经被修改了~

现在简单介绍这么多,下次再做深入研究QAQ~

本文链接:http://www.alonemonkey.com/xposed-hook.html

一条评论

Comments are closed.