前面讲到使用Cydia Substrate进行hook,原文链接:http://www.blogfshare.com/cyidasubstrate.html
刚刚试了下Xposed框架进行HOOK,顺便记录下:
首先下载Xposed Installer,也就是Xposed安装器,下载地址为:http://repo.xposed.info/module/de.robv.android.xposed.installer
下载完直接安装即可,初次安装会出现Xposed框架未激活,点击进去点击安装/更新,然后授予root权限。
安装完成之后点击重启,重启后发现已激活状态。
然后我们继续针对上次写的getCoin Demo进行HOOK。
一、新建Android工程,然后在AndroidManifest.xml配置Xposed的基本信息。
上面写的版本号是54,也就是我们用jar的版本号。
二、在工程目录下新建一个lib文件夹,将XposedBridgeApi-54.jar拷贝进去,然后右键–Build Path–Add to Build Path。
三、在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。
六、软重启,打开我们hook的Demo。
现在看到值已经被修改了~
现在简单介绍这么多,下次再做深入研究QAQ~
本文链接:http://www.blogfshare.com/xposed-hook.html