一个简单的Xposed模块编写

admin 2023年12月18日11:16:07评论68 views字数 2070阅读6分54秒阅读模式

以下内容来自WebSec星球群Hide师傅投稿


1. 环境准备

Xposed源码编译的过程中, 我们需要详细的了解Xposed中不同模块对应的版本以及适配的 Android 版本情况, 这样能够帮助我们减少错误,本文实验的环境搭建为:

实现平台

mac

实验手机

pixel xl

开发工具

android studio2020.3.1

lspXposed

1.7.2

2. 模块简述

编写一个xposed模块,也就是开发一个安卓app 。和普通程序本质上是一样的,

不一样的点在于:

Xposed知道我们安装的这个程序是个xposed模块。

模块里要包含有xposed的API的jar包, 以实现下一步hook操作。

这个模块里面要有对目标程序进行hook操作的方法。

要让手机上的xposed框架知道, 我们编写的xposed模块中, 哪一个方法是实现hook操作的, 也就是hook类的入口。


3. 模块编写

1.创建项目:

一个简单的Xposed模块编写

2.添加依赖

添加Xposed Framework API到project,在app/buid.gradle中的dependencies段里添加:

                                                                                                                                         Plain Text  

1

2

compileOnly 'de.robv.android.xposed:api:82'

compileOnly 'de.robv.android.xposed:api:82:sources'

 

一个简单的Xposed模块编写

3.修改AndroidManifest.xml

告诉EdXposed知道我们安装的这个程序是个xposed模块 。做法是在application字段中加入:

                                                                                                                                         Plain Text  

1

<meta-data

2

android:name="xposedmodule"

3

android:value="true"/>

4

<meta-data

5

android:name="xposeddescription"

6

android:value="针对***屏蔽ROOT以及设备检测"/>

7

<meta-data

8

android:name="xposedminversion"

9

android:value="53"/>

 

一个简单的Xposed模块编写

xposedmodule 表明是—个xposed模块

    xposeddescription 描述

xposedminversion API version(—般等于构建它的Xposed的version)

4.添加入口点

右键点击“main ”文件夹 , 选择new --> Folder -->Assets Folder,新建assets 文件夹:

一个简单的Xposed模块编写


然后右键点击 assets文件夹, new--> file 文件名为xposed_init 文件类型选text), 并在其中写上 入口类的完整路径( 就是自己编写的那一个Hook), 样, Xposed框架就能够从这个 xposed_init  读取信息来找到模块的入口:

一个简单的Xposed模块编写


 5.分析案例:

应用具有Root检测:一个简单的Xposed模块编写

应用具有平板检测: 【只能在平板上运行】

一个简单的Xposed模块编写


6.编写hook代码

如果只是用作xposed的一个模块的话, Main Activity其实是不需要的, 可以选择delete 。但是要   先把AndroidManifest.xml里Main Activity的部分删除并且把main/res/layout里的主界面布局文件 删掉。

MainActivity同级目录建立bypassRoot.java,所有的hook入口类必须是IXposedMod的实现 类:

对是否需要hook的应用进行判断, 并且hook上述两处检测方法, 进行绕过:

一个简单的Xposed模块编写

注:hook片段不会编写, 可通过jadx快捷键y生成。

7.绕过成功

一个简单的Xposed模块编写


WebSec星球介绍

  1. 我们郑重承诺,每个工作日都会定时推送高质量的1day,有时也会分享未公开的0day,新增实战案例。


  2. 目前星球价格为¥99。报名人数达到120人后,费用将上涨至¥199元,达到200人后,费用将上涨至¥299元。


  3. 转发至其他公众号5个拥有100人以上的安全群,加微信后提供截图,私聊球主价格可低至¥66元,但不支持退款


  4. 欢迎投稿最新漏洞poc复现分析文章,符合条件的投稿者将获得一年免费会员资格。


  5. 节假日期间,我们会发放一定数量的优惠券,数量有限,先到先得。



星球目前更新漏洞如下:

一个简单的Xposed模块编写

更多漏洞poc发布在知识星球

一个简单的Xposed模块编写


原文始发于微信公众号(WebSec):一个简单的Xposed模块编写

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月18日11:16:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个简单的Xposed模块编写http://cn-sec.com/archives/2312415.html

发表评论

匿名网友 填写信息