返回列表 发新帖

【编程开发】教你编写xposed Hook加固后的应用

    [复制链接]

50

主题

2504

回帖

9503

积分

硕士生

Rank: 6Rank: 6

金币
1138
好评
69
信誉
118

考神

QQ
发表于 2022-8-7 10:26:15 来自手机  | 显示全部楼层 | 阅读模式  来自 云南
本帖最后由 初晴~ 于 2022-8-7 22:31 编辑

  昨天写了个模块,很多人问我怎么开发xp模块,今天我就来讲讲怎么Hook加固之后的应用。

如果软件未加固,Hook类里的代码不适用!
如果软件未加固,Hook类里的代码不适用!
如果软件未加固,Hook类里的代码不适用!
未加固应用的xposed hook论坛已经有了,我就不写了。
依旧是我们的受害者小组件盒子 8月4日数字加固
我也只试过数字加固,其他加固等遇到再说吧




打开AIDE 当然建议还是用as
首先导入Xposedapi  更多/设置/构建&运行android.jar文件  把我们android.jar的绝对路径给复制进去
然后新建一个Android app项目,应用名包名自己改,我就不演示了。


新建好项目之后需要在AndroidManifset.xml里声明xposed模块

打开Amxl    src/main里面
在application里面添加三个meta-data标签
模块描述的value可以更改,其他不能更改。

代码如下:
  1.    <meta-data
  2.             android:name="xposedmodule"
  3.             android:value="true" />
  4.         <meta-data
  5.             android:name="xposeddescription"
  6.             android:value="改为自己想描述的" />
  7.         <meta-data
  8.             android:name="xposedminversion"
  9.             android:value="54" />
复制代码


改完之后我们创建Hook类,类名随意。
在scr/main/java里面新建类


创建好Hook类之后我们要声明类入口。
在main目录下创建assets目录,在assets目录下创建xposed_init文件,不要后缀名。
之后在里面输入包名+Hook类名 (例如我的Hook类名是Hook,那么就输入com.mycompany.application.Hook注意大小写)只有一行代码。




这一步做完我们就可以开始编写Hook代码了

Ok,打开我们之前创建的Hook类
实现IXposedHookLoadPackage接口,并且重写handleLoadPackage方法。

代码如下:
  1. import de.robv.android.xposed.IXposedHookLoadPackage;
  2. import android.content.Context;
  3. import de.robv.android.xposed.callbacks.XC_LoadPackage;
  4. import de.robv.android.xposed.XposedBridge;
  5. import de.robv.android.xposed.XposedHelpers;
  6. import de.robv.android.xposed.XC_MethodHook;

  7. public class 输入你自己的类名 implements IXposedHookLoadPackage {

  8.         public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
  9.                
  10.         }



  11. }
复制代码


我们知道软件加固之后classloader就被替换成加固本身的了,所以我们想要Hook加固后的应用,首先就是要获取Context对象,通过这个对象呢来获取classloader,获取到classloader之后呢就把原来的classloader替换成加固后的classloader就可以绕过加固实现Hook了。(看不懂没事,代码等下放下面)


代码如下:
  1. if (lpparam.processName.equals("io.iftech.android.box"))   //***** 判断应用名
  2.      
  3.                 {
  4.                
  5.                 XposedBridge.log("加载 App:"  + lpparam.packageName);
  6.               
  7.                         XposedHelpers.findAndHookMethod("com.stub.StubApp",
  8.                         lpparam.classLoader, "a", Context.class, new XC_MethodHook() {//或者a
  9.       
  10.                         @Override
  11.                      
  12.                         protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  13.      
  14.                                 super.afterHookedMethod(param);//获取到数字加固的Context对象,通过这个对象来获取classloader
  15.         
  16.                                         Context context = (Context) param.args[0];//获取数字加固的classloader,之后hook加固后的代码就使用这个classloader
  17.                         
  18.                                         ClassLoader classLoader = context.getClassLoader();//替换classloader,hook加固后的真正代码
  19.                
  20.                                         }

  21.                                                 });
  22.                              
  23.               
  24.                                                        
  25.                                                                
  26.                                 

  27.                                                 }
复制代码




Ok,做完这些已经可以开始编写Hook代码了。

至于类名和方法名这些就不用讲了吧,论坛搜一搜就行了



代码如下:
  1. XposedHelpers.findAndHookMethod("io.iftech.android.box.data.User", classLoader, "isVip", new XC_MethodHook() {//类名和方法名
  2.                                         @Override
  3.                                         protected void afterHookedMethod(MethodHookParam param) throws Throwable{  
  4.                                                                                         param.setResult(true);
  5.                                                                                        
  6.                         }      
  7.               
  8.                                                                                         });
复制代码

  1. XposedHelpers.findAndHookMethod("io.iftech.android.box.data.User", classLoader, "isLifeVip", new XC_MethodHook() {//类名和方法名
  2.                                         @Override
  3.                                         protected void afterHookedMethod(MethodHookParam param) throws Throwable{  
  4.                                                                                         param.setResult(true);
  5.                                                                                        
  6.                         }      
  7.               
  8.                                                                                         });
复制代码


Ok, 我们打包试一下。
激活模块之前:


激活模块之后:


完整版代码下载:

带Xposedapi的android.jar
https://cshlolss.lanzouv.com/ijsfe094q4gf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有27人评分好评 金币 理由
tony1118 + 1 + 1 很给力!
yeahn + 1
华月方昊 + 1 + 1
先生王 + 1 + 1
莫问归期. + 1 + 1 赞一个!
如梦方醒 + 1
iceblade + 1
橙子 + 1 + 1
爱玩不玩 + 1
Bin + 1 + 10
bdwxxyy + 1 + 1
蟹壳 + 1
兔耳离 + 1 + 1
御景 + 1 赞一个!
大魔 + 1 + 1
小白日常 + 1
强强yqq + 1 赞一个!
遇见便是上上签 + 1 + 1
Sunup + 1 + 1 神马都是浮云
烽火戏诸侯⁡ + 1 赞一个!

查看全部评分 总评分:好评 +21  金币 +34 

回复

使用道具 举报

50

主题

2504

回帖

9503

积分

硕士生

Rank: 6Rank: 6

金币
1138
好评
69
信誉
118

考神

QQ
发表于 2022-8-7 10:27:00 来自手机  | 显示全部楼层  来自 云南
写了2个多小时,这不给个好评
回复

使用道具 举报

4

主题

112

回帖

432

积分

禁止发言

金币
141
好评
0
信誉
100
发表于 2022-8-7 10:31:50 | 显示全部楼层  来自 山西
感谢分享
签名被屏蔽
回复

使用道具 举报

73

主题

2524

回帖

8094

积分

硕士生

Rank: 6Rank: 6

金币
1643
好评
2
信誉
100
发表于 2022-8-7 10:33:52 来自手机  | 显示全部楼层  来自 天津
看看看看
回复

使用道具 举报

11

主题

3281

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1994
好评
2
信誉
101
发表于 2022-8-7 10:35:59 来自手机  | 显示全部楼层  来自 江苏
感谢楼主
回复

使用道具 举报

349

主题

3980

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3557
好评
95
信誉
196

MT论坛最佳新人MT论坛新人考神

发表于 2022-8-7 10:37:48 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

69

主题

2250

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
2742
好评
21
信誉
100

考神MT论坛最佳新人MT论坛帅哥MT论坛活跃会员

发表于 2022-8-7 10:39:38 来自手机  | 显示全部楼层  来自 湖北
学习学习
回复

使用道具 举报

0

主题

7273

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
2246
好评
8
信誉
124

考神

发表于 2022-8-7 10:39:44 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

47

主题

975

回帖

2842

积分

大学生

Rank: 5Rank: 5

金币
446
好评
3
信誉
94

考神MT论坛最佳新人MT论坛新人

发表于 2022-8-7 10:40:20 来自手机  | 显示全部楼层  来自 四川
看看隐藏
回复

使用道具 举报

21

主题

3378

回帖

1万

积分

博士生

憨憨

Rank: 7Rank: 7Rank: 7

金币
191
好评
12
信誉
105

MT论坛最佳新人考神MT论坛新人

发表于 2022-8-7 10:40:45 来自手机  | 显示全部楼层  来自 河北
看看大佬这个
回复

使用道具 举报

0

主题

1659

回帖

5329

积分

硕士生

Rank: 6Rank: 6

金币
5396
好评
0
信誉
100
发表于 2022-8-7 10:41:03 来自手机  | 显示全部楼层  来自 广东
看看是不是真的
回复

使用道具 举报

11

主题

5279

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5943
好评
0
信誉
100

MT论坛最佳新人考神MT论坛新人MT论坛帅哥

发表于 2022-8-7 10:41:28 来自手机  | 显示全部楼层  来自 重庆
去看了看
回复

使用道具 举报

37

主题

5737

回帖

1万

积分

博士生

欣冉吖

Rank: 7Rank: 7Rank: 7

金币
5302
好评
25
信誉
407
发表于 2022-8-7 10:42:15 来自手机  | 显示全部楼层  来自 河北
感谢分享
回复

使用道具 举报

24

主题

3054

回帖

7656

积分

硕士生

Rank: 6Rank: 6

金币
273
好评
22
信誉
222

MT论坛帅哥MT论坛新人考神

发表于 2022-8-7 10:42:44 来自手机  | 显示全部楼层  来自 北京
看看隐藏
回复

使用道具 举报

5

主题

376

回帖

7552

积分

硕士生

Rank: 6Rank: 6

金币
596
好评
1
信誉
100

考神

发表于 2022-8-7 10:43:42 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表