Xposed 包名类名加密要如何hook?多dex如何查找对应的方法?
转载请标明出处:
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模块的注意点:
- 实现 IXposedHookLoadPackage接口
- 确定要Hook的Android App的包名
- 判断要Hook的包名
- 确定要Hook的AndroidApp的方法
- 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操作 }); } });
(如有 错误或者更优方法欢迎指出)
|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS11新特性 之 Core ML [机器学习]
https://developer.apple.com/documentation/coreml#topics 看到今年的WWDC推出一系列机器学习框架,激动的不行。其实iOS10就有 Accelerate and BNNS。都是更基础的API。 iOS11搭载了封装更好用的Core ML, 而且在Core ML还有封装了更为强大的图像识别处理库Vision, 文本处理的NSLinguisticTagger Core ML Model 是的,iPhone上将会出现大批的App在客户端本地跑机器学习、深度学习的Model。其实Prisma, DJI-GO内部都有一些机器学习引擎,内置一些神经网络模型。只是现在,苹果粑粑也要来参赛了。 苹果说Core ML 支持很多种模型,神经网络、集成学习、SVM、广义线性模型。苹果自己也提供了四个模型,都
- 下一篇
【云栖直播】精彩推荐第3期:个性化推荐系统搭建实践
热门推荐 (1)即将直播 持续集成与交付:分层自动化之UI自动化体系建设 直播简介: 本系列直播由阿里旗下一站式研发提效平台云效策划推出,主要为大家详细介绍阿里巴巴在持续集成和持续交付的最佳实践。 直播讲师: 开风, 阿里资深研发工程师 直播时间:2017年6月14日 19:30 >>[立即预约] 走进阿里:Android开发者沙龙 直播简介: Android O Pre 2发布,Kotlin成为Android官方编程语言,AI时代的到来……这是Android开发者的狂欢还是梦魇,Android开发的未来路在何方?Android开发者又该做哪些技术储备和转型? 直播讲师: 白衣等, 淘宝网高级专家 直播时间:2017年6月17日 13:30 >>[立即预约] (2)研发 首届阿里巴巴研发效能嘉年华 直播简介: 随着互联网和移动互联网的高速发展,企业往往存在多个线上应用,数十、甚至数百人参与开发与维护;同时,为了保持业务的核心竞争力,新特性高速平稳发布同样必不可少,本次活动将为大家介绍阿里第一手持续集成与交付实践! 直播讲师:乐学等, 菜鸟测试专家 直播时间:2...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7