首页
社区
课程
招聘
[求助]呼叫XPOSED高手,新手求助两个问题,急需解答,谢谢!
2014-12-2 09:30 15662

[求助]呼叫XPOSED高手,新手求助两个问题,急需解答,谢谢!

2014-12-2 09:30
15662
【求助】呼叫XPOSED高手,新手求助两个问题,急需解答,谢谢!

1. 带有Activity的Xposed模块,如何传递变量给模块,或者模块传递变量给Activity,谢谢!

2. 在模块的handleLoadPackage中,如果判断到某个指定的APP,如何拦截启动,直接kill这个APP,也就是说不让启动这个APP,谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 289
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
MindMac 5 2014-12-2 14:41
2
0
1.第一个不是很明白,一般模块主要是处理hook逻辑,所以注入后Activity那部分和模块不在同一个进程空间了,不知道楼主是不是这个意思?如果这样的话可以考虑写文件、数据库?
2.可以考虑Hook Application.OnCreate,然后判断package name, 最后Process.killProcess。
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tigerwood 2014-12-2 17:42
3
0
第一个问题,您说的很对啊,就是因为在不同的进程空间了,所以。。。
我现在自己去Hook这个Activity了,但是Hook不到,不知道什么情况,总是提示,找不到这个method。
在MainActivity中有个函数public void A(int iValue),
然后在Xposed模块中,判断packagename然后hook这个函数,
findAndHookMethod("com.example.test.MainActivity.A", lpparam.classLoader, "TestA", new XC_MethodHook() {。。。}
这样做不对吗?请指导,谢谢!

第二个问题,您是否能再详细一点,给点资料,初学啊,实在搞不清楚,呵呵,谢谢了
多谢!
雪    币: 289
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
MindMac 5 2014-12-2 18:35
4
0
1.不知道你是什么时候去hook的,这种情况一般是在handleLoadPackage中处理,等这个app加载了才能找到这个method;
2.你看这个吧 https://github.com/M66B/XPrivacy/blob/master/src/biz/bokhorst/xprivacy/XApplication.java
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tigerwood 2014-12-2 21:32
5
0
1. 就是在哪儿加载的,但是提示就是找不到,您再帮忙看看呢,谢谢!

public class XposedImplement implements IXposedHookLoadPackage {
    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
        if (!lpparam.packageName.equals("com.example.test"))
            return;
        
            findAndHookMethod("com.example.test.MainActivity.A", lpparam.classLoader, "TestA", new XC_MethodHook() {。。。}
            
    }
雪    币: 289
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
MindMac 5 2014-12-2 22:43
6
0
你代码是不是写错了,findAndHookMethod第一个参数是类名,应该是com.example.test.MainActivity,第三个参数是方法名,应该是A,最后一个参数是你要替换的函数实现~
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tigerwood 2014-12-2 23:15
7
0
多谢高人提示,我自己试试看,谢谢!

第二个问题,看了代码,真心没看懂,汗。。。
能不能解释一下
雪    币: 289
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
MindMac 5 2014-12-3 00:17
8
0
要hook的apk给个下载链接,我试着给你写个demo
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tigerwood 2014-12-3 12:05
9
0
能够Hook住了,是我没有加参数标志,这个函数有个参数标志。。。。
新手犯的低级错误。。。。

现在还有一个问题,就是,拦截到了这个method,param.thisObject是什么呢,
我想得到MainActivity的实例句柄,然后调用他的另外一个函数,或者得到他的某个成员变量的值,
应该怎么做,谢谢!

MainActivity clsMAct = (MainActivity) param.thisObject;
我这么写的,报错,不能转换。。。
雪    币: 289
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
MindMac 5 2014-12-3 13:53
10
0
thisObject就是你Hook的方法所在类的实例啊,为啥报错我就不知道了,你可以log下thisObject的类型看看
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tigerwood 2014-12-3 15:16
11
0
看到的就是MainActivity,但是还是报错,
java.lang.ClassCastException: com.test.test.MainActivity cannot be cast to com.test.test.MainActivity.

不知道怎么搞了。。。
雪    币: 330
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
toyuk 2015-4-18 18:55
12
0
1. 我不是想hook a函数,我是想在onCreate之后执行这个函数。这个函数是在MainActivity中的一个函数。

2. 代码的意思是我hook住了onCreate,但是我想在结束的时候执行一次a方法,a方法的调用方法不会写。
游客
登录 | 注册 方可回帖
返回