前面讲到使用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权限。
安装完成之后点击重启,重启后发现已激活状态。
然后我们继续针对上次写的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~
Permalink
alert(“hello”)