Xposed获取对象loadClass、获取方法getMethod、获取成员变量findfield


0、拿对象 classLoader.loadClass("com.ss.sys.ces.b.a");
                                    formClass("com.ss.sys.ces.b.a")

         Class.forName(className)方法,内部实际调用的方法是  Class.forName(className,true,classloader);

第2个boolean参数表示类是否需要初始化,  Class.forName(className)默认是需要初始化。

一旦初始化,就会触发目标对象的 static块代码执行,static参数也也会被再次初始化。


       ClassLoader.loadClass(className)方法,内部实际调用的方法是  ClassLoader.loadClass(className,false);

第2个 boolean参数,表示目标对象是否进行链接,false表示不进行链接,由上面介绍可以,

不进行链接意味着不进行包括初始化等一些列步骤,那么静态块和静态对象就不会得到执行

相比之下数据库要使用forName(className),因为Driver源码Static{},Class.forName(classname)才能反射回去类的时候执行static块

 

1、找方法 getDeclareMethod(),getMethod("方法名",“参数对象类型”)。

 

2、找成员变量class.getDeclareField(“ e”)或XposedHelper.FindField("对象实例","e")

或getObjectByField(param.thisObject,“e”)

FieldByName和FindField都是用来查找字段,不同在于FindField找不带符合条件的字段时返回的是null,而FieldByName找不到则直接抛出异常。FieldByName在内部是调用FindField实现的。

thisOpject  //获取要执行的当前对象

 

3、performClick()方法 是使用代码主动去调用控件的点击事件(模拟人手去触摸控件)

 

还有什么问题不明白,或者不会,我给你解答

欢迎加入我的Java与Android逆向开发交流QQ群,一起交流学习。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用Xposed来通过ArtMethod对象访问到ActivityThread.class中的currentActivityThread方法对应的hotness_count_字段值。 Xposed框架是一个实现安卓系统级别的动态模块化的框架,您可以通过Xposed框架在运行时修改安卓系统中的类和方法。 首先,您需要创建一个Xposed模块,并使用Xposed API实现代码,在代码中查找到ActivityThread.class中的currentActivityThread方法,然后访问该方法对应的ArtMethod对象,最后读取hotness_count_字段的值。 这个过程需要一定的Java和安卓开发知识,如果您不熟悉请咨询相关资料或者请教专业人士。 ### 回答2: 要通过Xposed获取Android ActivityThread类中的currentActivityThread方法对应的ArtMethod对象中的hotness_count字段值,需要进行以下操作: 1. 在Xposed框架中创建一个模块,以便能够在运行时修改目标应用程序的行为。可以使用Xposed框架提供的工具进行模块的创建和设置。 2. 在模块的入口方法中,使用Xposed框架的findAndHookMethod方法来hook目标应用程序中的ActivityThread类的currentActivityThread方法。该方法用于获取ActivityThread类的实例。 3. 在hook方法中,可以使用Java的反射机制来访问ActivityThread类的currentActivityThread方法。首先,通过反射获取到ActivityThread类的Class对象。然后,使用getMethod方法获取currentActivityThread方法Method对象。通过调用invoke方法,可以执行currentActivityThread方法获取返回的实例对象。 4. 接下来,可以通过反射获取到ArtMethod类的Class对象。ArtMethod类是Android底层的一个类,其中包含了关于方法的信息,包括hotness_count字段。 5. 使用反射的getMethod方法获取hotness_count字段的Method对象。 6. 最后,通过调用反射中的invoke方法获取该字段的值,并将其使用相应的方式记录下来,可以是打印到日志中或者进行其他后续处理。 需要注意的是,在实际操作中,还需要进行一些异常处理和数据类型转换。另外,对于使用Xposed框架hook目标应用程序的方法,需要了解目标应用程序的结构和运行机制,并做好相应的适配工作。 ### 回答3: 想要通过Xposed获取安卓ActivityThread.class中的currentActivityThread方法对应的ArtMethod对象中的hotness_count_字段值,首先需要明确几个概念。 Xposed是一个用于Android系统的框架,它允许我们在不修改APK文件的情况下,对Android应用进行拦截、修改和增强。而ArtMethod则是Android虚拟机中的一个类,用于表示Java方法。 要实现这个目标,可以按照以下步骤进行: 1. 安装Xposed框架并启用Xposed模块。这是首要步骤,可以在Rooted的Android设备上安装一个经过修改的系统文件framework.jar来实现。 2. 创建一个Xposed模块。在模块的主类中,我们需要实现Xposed的回调接口,主要关注`handleLoadPackage`方法。 3. 在`handleLoadPackage`方法中,拦截目标应用的包名,并在`handleLoadPackage`方法中写入针对目标应用的Hook代码。 4. 在Hook代码中,通过反射获取ActivityThread类并调用currentActivityThread方法获取其实例。 5. 通过反射获取ArtMethod类,从currentActivityThread实例中获取该类对应的ArtMethod对象。 6. 从ArtMethod对象获取hotness_count_字段的值,可以通过反射获取该字段的值,并进行后续处理。 需要注意的是,以上步骤涉及反射和Xposed框架,需要具备相关的编程知识和经验。同时,由于Android系统的版本差异较大,代码的具体实现可能因系统版本而异。因此,具体的代码实现细节需要根据系统版本和目标应用的特征进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值