2019年8月27日16时51分47秒 以前一直没机会接触Android Hook方式的逆向 今天有空试了下,以前也很少写这种东西, 今天第一次,认真写下,记录一下?
准备
准备搞太极的,但是Xposed都不会,不好搞,所以就先来搞Xposed
1.我手头恰好有一个华为H30-L01 Android 4.4 的机子,有root的(新手省麻烦)
2.AndroidStudio3.5 开发环境
安装Xposed框架
百度搜索 `xposedinstaller`,第一条就是。
https://repo.xposed.info/module/de.robv.android.xposed.installer
页面有提示:此页面XposedInstaller不适用Android 5.0或更高版本。
下载连接:https://dl-xda.xposed.info/modules/de.robv.android.xposed.installer_v33_36570c.apk
将此App安装上,打开Xposed,在设置页面设置如下。
(记得安装设置完毕后重启,添加模块,设置的时候也需要重启才能生效)
开发
手机这边基本弄好了,现在着手开发(Xposed初体验)
使用AndroidStudio建立一个Android空项目
此处参照官方文档:
https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
修改AndroidManifest.xml
在application标签下添加如下代码:
(大家会不会和我一样想还有没有其他属性呢?暂时未发现,好像就这三个,官方文档也就这三个)
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="Xposed模块初体验" />
<meta-data
android:name="xposedminversion"
android:value="53" />
前面两个属性和取值,大家应该没有什么疑问。
第三个为什么是53呢?大家请看下图:
参考官方文档
https://github.com/rovo89/XposedBridge/wiki/Using-the-Xposed-Framework-API
添加Xposed库
这里我是用的方式是在app\build.gradle中(Moudle)添加如下代码:
compileOnly 'de.robv.android.xposed:api:53'
compileOnly 'de.robv.android.xposed:api:53:sources'
具体位置,如图
- 现在可能需要这样操作
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://maven.aliyun.com/repository/public/' }
google()
mavenCentral()
// maven { url "https://api.xposed.info/" }
}
}
使用Xposed
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class HookTest implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Hook初体验:" + lpparam.processName + ":" + lpparam.packageName);
}
}
添加xposed_init
编译运行
看log
哈哈,不好意思,后面有随便写了(不详细),因为写到一半被我妈喊去吃饭了???回来就粗了
具体大家可以参考本文链接里的,
和这个
https://www.freebuf.com/articles/terminal/189021.html