12下一页
返回列表 发新帖

大佬帮我看下,这个XP编写哪里有问题

[复制链接]

20

主题

1961

回帖

6667

积分

硕士生

Rank: 6Rank: 6

金币
5297
好评
1
信誉
102
发表于 2023-4-4 18:03:55 | 显示全部楼层 | 阅读模式  来自 浙江
本人小白,按论坛里大佬 @无法显示 的教程一步步学的。写个Hook模块,用的是AIDE里的XPOSED.JAVA通用模版。一个数字加固的漫画软件com.manhua.hua,去开屏QQ联盟广告,类名com.qq.e.comm.managers.b    方法名 d  返回值 0 ,模块激活后,漫画软件就闪退。大佬帮看看,是哪里错了。万分感谢!!
  1. import android.content.*;
  2. import android.graphics.*;
  3. import android.os.*;
  4. import android.widget.*;
  5. import de.robv.android.xposed.*;
  6. import de.robv.android.xposed.callbacks.*;
  7. import java.util.*;
  8. import android.app.*;

  9. /* 注意:该类不要自己写构造方法,否者可能会hook不成功
  10. * 开发Xposed模块完成以后,关闭bebug以提升性能
  11. * debug模式只需要第一次重启,以后修改hook代码就不用重启了
  12. */

  13. public class xposed implements IXposedHookLoadPackage
  14. {
  15. public static Activity 上下文;

  16.         @Override
  17.         public void handleLoadPackage(XC_LoadPackage.LoadPackageParam 包名) throws Throwable {
  18.                 //判断是不是这个软件包名,不判断的话,全部的软件都会被hook
  19.                 if (!包名.packageName.equals("com.manhua.hua"))
  20.                         return;
  21.                 //提示("已hook的包名∶" + 包名.packageName);
  22.                                 XposedHelpers.findAndHookMethod(
  23.                                 "com.stub.StubApp",
  24.                                 包名.classLoader,
  25.                                 "attachBaseContext",
  26.                                 Context.class,
  27.                                 new XC_MethodHook()
  28.                                 {@Override
  29.                                 protected void afterHookedMethod(MethodHookParam param)
  30.                                 throws Throwable
  31.                                 {super.afterHookedMethod(param);
  32.                                 Context context = (Context) param.args[0];
  33.                                 ClassLoader classLoader = context.getClassLoader();
  34.         if(上下文==null){XposedHelpers.findAndHookMethod(Activity.class,"onCreate",Bundle.class,new XC_MethodHook() {
  35.                 @Override
  36.                 protected void afterHookedMethod(MethodHookParam 参数) throws Throwable
  37.                 {super.afterHookedMethod(参数);
  38.                 if(上下文==null){上下文=(Activity)参数.thisObject;
  39.                 提示("模块已开启");
  40.                 XposedBridge.log("得到Activity上下文");}}});}
  41.        
  42.                 //查找和hook方法,演示hook boolean方法
  43.                 XposedHelpers.findAndHookMethod(
  44.                         "com.qq.e.comm.managers.b"//要hook的应用类名
  45.                         , classLoader,
  46.                         "d"//要hook的方法
  47.                         //,String.class//函数名,可以注释掉,String就是String.class
  48.                         , new XC_MethodHook()//回调
  49.                         {@Override
  50.                                 protected void afterHookedMethod(MethodHookParam 参数) throws Throwable
  51.                                 {//拦截之后要做什么
  52.                                         super.afterHookedMethod(参数);
  53.                                         参数.setResult(0);////强制返回boolean为true
  54.                                 }});
  55.                 }
  56.                
  57.                 private void 提示(String 内容)
  58.         {try{
  59.                 Toast.makeText(上下文, 内容,  1000).show();
  60.                 }catch(Exception e){XposedBridge.log("提示异常:"+e);}
  61.                 XposedBridge.log("免重启方法输出"+内容);
  62.                 // 雨 道  汉 化: 实现这个方法
  63.         }
  64. });};}
复制代码


回复

使用道具 举报

110

主题

2689

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1257
好评
125
信誉
195

考神MT论坛新人MT论坛活跃会员MT论坛帅哥MT论坛灌水老大

QQ
发表于 2023-4-4 18:04:52 来自手机  | 显示全部楼层  来自 河南
本帖最后由 陌璃与鱼 于 2023-4-4 18:05 编辑

沙发把返回值0换成false试试
回复

使用道具 举报

20

主题

1961

回帖

6667

积分

硕士生

Rank: 6Rank: 6

金币
5297
好评
1
信誉
102
发表于 2023-4-4 18:18:48 | 显示全部楼层  来自 浙江
陌璃与鱼 发表于 2023-4-4 18:04
沙发把返回值0换成false试试

还是不行,勾上模块就闪退,不勾就没事。
回复

使用道具 举报

1

主题

3495

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5943
好评
2
信誉
100

MT论坛新人考神

发表于 2023-4-4 18:21:07 来自手机  | 显示全部楼层  来自 河南
还是蹲个大佬吧
回复

使用道具 举报

41

主题

3674

回帖

9824

积分

硕士生

Rank: 6Rank: 6

金币
7470
好评
11
信誉
107

考神

发表于 2023-4-4 18:23:00 来自手机  | 显示全部楼层  来自 广东
把0改成null试试
回复

使用道具 举报

20

主题

1961

回帖

6667

积分

硕士生

Rank: 6Rank: 6

金币
5297
好评
1
信誉
102
发表于 2023-4-4 18:26:39 | 显示全部楼层  来自 浙江

还是闪退,我怀疑代码有问题吧,我东拼西凑的。。
回复

使用道具 举报

1

主题

1807

回帖

8913

积分

硕士生

Rank: 6Rank: 6

金币
3815
好评
1
信誉
100
发表于 2023-4-4 18:29:13 来自手机  | 显示全部楼层  来自 广西
hook对方法了没?
回复

使用道具 举报

28

主题

584

回帖

2286

积分

大学生

Rank: 5Rank: 5

金币
457
好评
3
信誉
98
发表于 2023-4-4 18:29:19 来自手机  | 显示全部楼层  来自 湖南
smmyou 发表于 2023-4-4 18:26
还是闪退,我怀疑代码有问题吧,我东拼西凑的。。

这里删掉看看上下文=(Activity)参数.thisObject;
回复

使用道具 举报

51

主题

4282

回帖

1万

积分

博士生

念空

Rank: 7Rank: 7Rank: 7

金币
785
好评
29
信誉
121

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

发表于 2023-4-4 18:30:05 来自手机  | 显示全部楼层  来自 湖北
数字加固,你也过不了签名,没必要搞啊
回复

使用道具 举报

28

主题

584

回帖

2286

积分

大学生

Rank: 5Rank: 5

金币
457
好评
3
信誉
98
发表于 2023-4-4 18:31:23 来自手机  | 显示全部楼层  来自 湖南
似清风入怀 发表于 2023-4-4 18:30
数字加固,你也过不了签名,没必要搞啊

hook要过签名吗,不用吧,除非检测xp闪退
回复

使用道具 举报

28

主题

584

回帖

2286

积分

大学生

Rank: 5Rank: 5

金币
457
好评
3
信誉
98
发表于 2023-4-4 18:31:55 来自手机  | 显示全部楼层  来自 湖南
我的建议直接用simplehook,简单粗暴,hook一些简单的还是可以的
回复

使用道具 举报

22

主题

1112

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
2568
好评
34
信誉
129
发表于 2023-4-4 18:59:21 来自手机  | 显示全部楼层  来自 山西
代码没什么问题,估计是软件检测
回复

使用道具 举报

41

主题

3674

回帖

9824

积分

硕士生

Rank: 6Rank: 6

金币
7470
好评
11
信誉
107

考神

发表于 2023-4-4 19:04:01 来自手机  | 显示全部楼层  来自 广东
把以下代码替换你20行及之后的代码,如若有用,麻烦给个好评

  1.     public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {

  2.         if (lpparam.packageName.equals("com.manhua.hua")) {
  3.             XposedBridge.log("开始hook...");
  4.             //hook 3六0加固后的包,首先hook com.stub.StubApp这个方法来获取context对象
  5.             XposedHelpers.findAndHookMethod("com.stub.StubApp", lpparam.classLoader, "getOrigApplicationContext", Context.class, new XC_MethodHook() {
  6.                                 @Override
  7.                                 protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  8.                                         super.afterHookedMethod(param);
  9.                                         //获取到360的Context对象,通过这个对象来获取classloader
  10.                                         Context context = (Context) param.args[0];
  11.                                         //获取3六0的classloader,之后hook加固后的就使用这个classloader
  12.                                         ClassLoader classLoader =context.getClassLoader();
  13.                                         //下面就是强classloader修改成360的classloader就可以成功的hook了
  14.                                         XposedHelpers.findAndHookMethod("com.qq.e.comm.managers.b", classLoader, "d", new XC_MethodHook() {
  15.                                                 @Override
  16.                                                 protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
  17.                                                         super.beforeHookedMethod(param);
  18.                                                         param.setResult(false);
  19.                                                 }
  20.                                         });
  21.                                 }
  22.                         });
  23.                         return;
  24.                 }
  25.         }
复制代码
已有1人评分好评 金币 理由
smmyou + 1 + 1 很给力!

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

回复

使用道具 举报

20

主题

1961

回帖

6667

积分

硕士生

Rank: 6Rank: 6

金币
5297
好评
1
信誉
102
发表于 2023-4-4 20:20:51 | 显示全部楼层  来自 浙江
本帖最后由 smmyou 于 2023-4-4 20:32 编辑
Icelotus 发表于 2023-4-4 19:04
把以下代码替换你20行及之后的代码,如若有用,麻烦给个好评

成了,大佬果然是高手,非常感谢。   
回复

使用道具 举报

21

主题

2701

回帖

6514

积分

硕士生

Rank: 6Rank: 6

金币
5327
好评
4
信誉
100

考神

发表于 2023-4-4 20:26:23 | 显示全部楼层  来自 山东
好家伙,这中文变量,让我有一种易语言 易安卓的感觉。
回复

使用道具 举报

发表回复

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

本版积分规则

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