| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> DEX | ELF 文件结构介绍 -> 正文阅读 |
|
[移动开发]DEX | ELF 文件结构介绍 |
Dex文件结构:1.dex文件中的数据结构 ????????u1/uint8_t=>表示1字节的无符号数 ????????u2/uint16_t=>表示2字节的无符号数 ????????u4/uint32_t=>表示4字节的无符号数 ????????u8/unit64_t=>表示8字节的无符号数 ????????sleb128=>有符号leb128,可变长度为1-5字节 ????????uleb128=>无符号符号leb128,可变长度为1-5字节 ????????uleb128p1=>无符号leb128值加1,可变长度为1-5字节 2.dex文件整体结构 struct DexFile { ????????DexHeader ????????DexStringId ????????DexTypeId ????????DexProtoId//对DexType进一步说明 ????????DexFieldId ????????DexMethodId ????????DexClassDef ????????DexData ????????DexLink } 以索引为线索 3.DEX的内存映射 ????????与静态类似,只是变为xxxItem结构 ????????ClassObject结构由六个部分组成:???? ????????PDvmDex:// DEX文件字段 ???? ????????super://超类 ??? ????????sfields://对应DexClassData结构中的staticFields静态字段 ????? ????????iFields://对应DexClassData结构中的instanceFields实例字段 ?????? ????????directMethods://对应DexClassData结构中的directMethods直接方法字段 ?? ????????virtualMethods:///对应DexClassData结构中的virtualMethods虚方法字段 ????????DexClassDef : ?class_def_item ?? ????????DexClassData: ?class_data_item ???? ????????DexFiled(staticFields): sfileds ????? ????????DexFiled(instanceFields): ifileds ???????? ????????DexMethod(directMethods):directMethods ???? ????????DexMethod(virtualMethods):virtualMethods ??????? ????????DexCode: code_item ? ELF文件结构: ????????linux elf文件、windows pe文件 ????????Android操作系统内核采用Linux内核框架实现 ?Android ELF文件 ELF文件整体结构: ????????ELF Header-->ELF文件头的位置是固定的 ????????Segment Header Table-->ELF程序头描述的是段的相关信息 ????????.init ????????.text ????????.rodata ????????.data ????????.symtab ?符号表 ????????.line ???????? ????????.strtab ?字符串表 ????????Section Header Table-->ELF节头表描述的是节区的信息 ????????动态用段,静态用节 ????????readelf的使用: ?????????????????-a ?????????????????-h ?????????????????-l ?????????????????-S ?????????????????-e ?????????????????-s ????????arsc文件: ????????????????arsc文件解析 ????????xml文件: ????????????????xml文件解析及工具 ????????xml加密 ????????????????xml和arsc简单十六进制加密: 以arsc为例:在0x00000028h的文件偏移地址之前进行修改,如改头 部第一个HEX操作数为00。搜索字符,'1c' 搜索3下。把1c前面的 01改00,就可以了。看020行,头部字节流,把尾部的00改为和头 部一样。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 17:11:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |