当前位置: 首页 > news >正文

西安php网站建设最有创意的广告语30条

西安php网站建设,最有创意的广告语30条,西丽做网站,网页翻译怎么设置类列表 每一个ClassLoader里面的类列表,类的数量都是固定的。 对上一节中的dex反编译 使用DexClassLoader类动态加载插件dex   利用jadx对dex进行反编译可以看到有哪些类 源码分析 BaseDexClassLoader 从BaseDexClassLoader类加载器开始分析 在BaseDexClassLoade…

类列表

  每一个ClassLoader里面的类列表,类的数量都是固定的。

对上一节中的dex反编译

  使用DexClassLoader类动态加载插件dex
  利用jadx对dex进行反编译可以看到有哪些类

在这里插入图片描述

源码分析

  • BaseDexClassLoader
    BaseDexClassLoader类加载器开始分析
    BaseDexClassLoader类里有一个pathList属性,它的类型是DexPathList,分析DexPathList类的定义
    在这里插入图片描述

  • DexPathList
    DexPathList类里有一个dexElements属性,它是Element类型,分析Element类的定义
    在这里插入图片描述

  • Element
    Element类是DexPathList的内部类,它有一个属性是dexFile,它是DexFile类型,分析DexFile类的定义

    在这里插入图片描述

  • DexFile
    DexFile里找到一个方法getClassNameList(),获取类名,它需要一个参数cookie
    在这里插入图片描述
    cookie参数就是DexFile类的属性mCookie了在这里插入图片描述
    接下来通过反射调用getClassNameList()方法就可以得到类加载器可以加载的类了。

代码

public static void getClassListInClassLoader(ClassLoader classLoader) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {// 获取BaseDexClassLoader类Class BaseDexClassLoaderClass=Class.forName("dalvik.system.BaseDexClassLoader");// 获取BaseDexClassLoader类中的pathList字段Field pathListField = BaseDexClassLoaderClass.getDeclaredField("pathList");// 设置权限pathListField.setAccessible(true);// 从传进去的参数classLoader加载器对象中获取pathList对象Object pathListobj = pathListField.get(classLoader);// 获取DexElemtnt类Class DexElemtntClass = Class.forName("dalvik.system.DexPathList");// 获取DexElemtnt类中的dexElements字段Field dexElements = DexElemtntClass.getDeclaredField("dexElements");// 设置权限dexElements.setAccessible(true);//  pathList对象中获取dexElements对象Object[] dexElementsArratobj = (Object[]) dexElements.get(pathListobj);// 获取Element内部类Class ElementClass = Class.forName("dalvik.system.DexPathList$Element");// 从Element内部类中获取字段dexFileField dexFileField = ElementClass.getDeclaredField("dexFile");设置权限dexFileField.setAccessible(true);  // 取消权限检查// 获取DexFile类Class DexFileClass = Class.forName("dalvik.system.DexFile");// 从DexFile类中获取字段mCookie Field mCookieField = DexFileClass.getDeclaredField("mCookie");// 设置权限mCookieField.setAccessible(true);// 获取字段mFileNameField mFIleNameField = DexFileClass.getDeclaredField("mFileName");// 设置权限mFIleNameField.setAccessible(true);// 从DexFile类中获取getClassNameList方法Method getClassNameListMethod = DexFileClass.getDeclaredMethod("getClassNameList",Object.class);// 设置权限getClassNameListMethod.setAccessible(true);// 遍历dexElements,dexElement里面有dexFilefor(Object dexElementobj:dexElementsArratobj){// 获取dexfile对象Object dexfileObj = dexFileField.get(dexElementobj);// 获取mCookie对象Object mCookieobj = mCookieField.get(dexfileObj);// 获取mFileName对象String mFileNameobj = (String) mFIleNameField.get(dexfileObj);// 调用getClassNameList方法获取类列表String[] classList = (String[]) getClassNameListMethod.invoke(null,mCookieobj);for(String classname:classList){// 打印信息Log.e("classlist",classLoader.toString()+"---"+mFileNameobj+"---"+classname);}}
}

调用getClassListInClassLoader()

getClassListInClassLoader(dexClassLoader)
成功获取到了dexClassLoader类加载器中可以加载的类
在这里插入图片描述

http://www.tj-hxxt.cn/news/81728.html

相关文章:

  • 柳江企业网站建设价格做seo需要用到什么软件
  • 东莞网站建设网站排名优化网络营销策划书1500字
  • 江苏镇江丹阳疫情最新消息今天seo优化方案
  • wordpress制作友情链接页面长沙网站seo优化公司
  • 做网站和做小程序有什么不同百度河南代理商
  • 建设一个网站的硬件要求吗公司网站制作教程
  • 做一的同志小说网站网店代运营骗局
  • 开发制作一个网站seo诊断书案例
  • 主机屋如何做网站万网注册域名查询
  • 有哪些好的印花图案设计网站线上营销策划方案
  • 爱站云网站建设heikw厦门seo优化
  • 手机网站 建设建站模板网站
  • 有没有网站找人帮忙做图游戏推广员是诈骗吗
  • 网站备案地区武汉seo关键词排名优化
  • 无锡网站排名优化公司哪家好百度快速收录提交工具
  • 专门做招商的网站网站查询ip地址
  • 苏州关键词排名系统正规网站优化哪个公司好
  • 新手如何学做网站百度首页百度一下
  • 设计型网站案例百度推广代理商与总公司的区别
  • 网站下方链接图标怎么做免费网站友情链接
  • 成都金牛网站建设公司百度首页登录官网
  • 鄱阳做网站新型实体企业100强
  • 简述网站开发平台抖音账号权重查询
  • 做网站为什么图片上传不了免费制作永久个人网站
  • 甘肃网站建设哪家便宜百度首页纯净版怎么设置
  • 网站添加icp备案号百度推广用户注册
  • 做网站给不给源代码台湾新闻最新消息今天
  • 常州做网站价格企业推广方式
  • 爱做片视频网站培训机构排名全国十大教育机构排名
  • 腾讯网站建设的基本情况球队排名世界