欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Xposed框架hook安卓接口

程序员文章站 2022-05-31 18:03:11
...

最近在研究抓安卓里的接口返回的数据,看到了这方面的知识,其实用Xposed框架hook安卓接口在网上的帖子挺多的,自己好不容易调通了,整理一下,主要说一些注意事项。

参考贴:

http://blog.csdn.net/zhangmiaoping23/article/details/52315745

 

步骤a:安装XposedInstall工具

在Android 4.0以上Android设备(需root权限,建议直接用模拟器)安装 XposedInstaller

安装好XposedInstaller后,点击框架,点击安装/更新,然后重启,安装好之后如下:

用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
 

步骤b:编写插件

XposedTest:插件工程,详见附件,要写的就几个地方:

1.assets目录下的xposed_init文件

com.example.xposedtest.HookUtil

2.Manifest中的配置

<meta-data android:name="xposedmodule" android:value="true" />

<meta-data android:name="xposeddescription" android:value="登录hook例子!" />

<meta-data android:name="xposedminversion" android:value="54" />

3.HookUtil类里的代码

 

步骤c:选定插件

切记,选定model之后,一定要重启!不然不会生效,而且没有错误提示。
用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发

 

步骤d:展示效果

我直接抓了Activity的onClick接口

用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
onClick函数
用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
效果
用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
 
 

注意事项:

1.建议使用模拟器测试,我这边的真机,XposedInstall都不支持,我也没去试了

2.hook插件里反射的对象,不是xml里的id,而是Activity里的对象

插件里反射要控制的对象:

用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
 想要控制的对象:

用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
3.如果插件要控制LoginTest的空间,比如控制EditText,那么空间得是public不能是private,不知道为啥(后来用private也没报错了,看网上说getDeclaredField可以反射private对象,但是不知道之前为什么会失败)

4.hook代码可以直接放进LoginTest的apk里去,亲测有效。

 

 但是讲真,这样用没法做到简单的通过代码抓用户手机上的包,还得琢磨一下

  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 60.6 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 75 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 22.9 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 21.6 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 82.1 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 36.2 KB
  • 用Xposed框架hook安卓接口
            
    
    博客分类: 安卓开发
  • 大小: 128.5 KB