Xposed 包名类名加密要如何hook?多dex如何查找对应的方法?

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 转载请标明出处: http://blog.csdn.net/djy1992/article/details/73168865 本文出自:【奥特曼超人的博客】Xposed Hook ,逆向常用之一。

转载请标明出处:
http://blog.csdn.net/djy1992/article/details/73168865
本文出自:【奥特曼超人的博客】

Xposed Hook ,逆向常用之一。

有人经常问,方法名不在原包名下怎么办,也就是被加密过的包名路径,如 com.immqy.a / com.immqy.com.b , 一般我们会先找包名,再去干出方法名,可是加密了呢?

包名类名加密要如何hook?多dex如何查找对应的方法?

先来看第一种:

//省略
if( ! mFuck.packageName.equals("com.immqy.a")){
    return;
}

XposedHelpers.findAndHookMethod("util.abc.e", mFuck.classLoader, "loadJNI", String.class, new XC_MethodHook()){
     //...省略操作
}

会出现 java.lang.NoSuchMethodError,这是因为什么?

先来看看Hooking Android App 的Hook关键点实现Hook模块的注意点:

  1. 实现 IXposedHookLoadPackage接口
  2. 确定要Hook的Android App的包名
  3. 判断要Hook的包名
  4. 确定要Hook的AndroidApp的方法
  5. findAndHookMethod 语法:
    XposedHelpers.findAndHookMethod(“包名+类名”,
    lpparam.classLoader, “要hook的函数名称”, 第一个参数类型, 第二个参数类型….., new
    XC_MethodHook() { protectedvoidbeforeHookedMethod(MethodHookParam
    param) {
           //函数执行之前要做的操作 } protectedvoidafterHookedMethod(MethodHookParam param) {
    //函数执行之后要做的操作 } });

find 的去包名+类名,这里是缺少了包名 “com.immqy”,记得是 manifest 里的 packageName 。

现在的APP常用的会分dex,这种需要先去hook Application的attach方法,然后再hook第二个dex的方法,其实更像是手动去找,为什么需要attach,因为attach方法的参数里带有上下文的context,如果用xposed去hook非默认dex文件的类就会发生ClassNotFoundError,要解决这个问题,我们需要拿到对应dex文件的上下文环境。

解决方案:

 XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    ClassLoader cl = ((Context)param.args[0]).getClassLoader();
                    Class<?> hookclass = null;
                    try {
                        hookclass = cl.loadClass("xxx.xxx.xxx");
                    } catch (Exception e) {
                        Log.e("dujinyang", "查询报错"+e.getMessage());
                        return;
                    }
                    Log.i("dujinyang", "查询成功");
                    XposedHelpers.findAndHookMethod(hookclass, "xxx", new XC_MethodHook(){
                        //进行hook操作
                    });
                }
            });

(如有 错误或者更优方法欢迎指出)



|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

相关文章
|
7月前
|
安全 API 开发工具
oss加密的配置方法
阿里云OSS提供多种加密选项:SSE-OSS(默认或对象级AES-256加密)、SSE-KMS(使用KMS托管CMK)、临时密钥加密和客户端加密(CSE)。可通过控制台或API设置Bucket策略,使用HTTP头部指定加密方式。KMS和临时密钥可能涉及更复杂的密钥管理和权限配置。
740 5
|
存储 数据挖掘 数据安全/隐私保护
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题
128 1
|
存储 算法 Java
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(下)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
126 1
|
数据安全/隐私保护 Python
Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)
Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)
367 0
|
2月前
|
存储 安全 Java
|
2月前
|
算法 安全 数据安全/隐私保护
链接加密的方法有哪些?
【10月更文挑战第6天】链接加密的方法有哪些?
173 10
|
2月前
|
安全 数据安全/隐私保护 开发者
保护敏感数据:使用Python加密数据的实用方法
保护敏感数据是一项基本的安全实践,Python通过上述库提供了强大的加密工具来实现这一目标。选择哪种方法取决于具体的应用场景和安全需求:对称加密(如AES)适合快速处理大量数据,而非对称加密(如RSA)更适合安全地交换密钥或进行身份验证。哈希函数则用于验证数据的完整性和一致性。通过合理使用这些技术,开发者可以大大增强其应用程序的安全性。
93 0
|
4月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
Unity数据加密☀️反射的用法:变量、属性、方法、重载,反射在DLL中的使用方法
|
6月前
|
数据安全/隐私保护 算法 安全
数据加密有哪些方法?
【6月更文挑战第2天】数据加密有哪些方法?
121 3
|
6月前
|
搜索推荐 算法 PHP
详尽分享记6种php加密解密方法
详尽分享记6种php加密解密方法
659 0