【移动安全基础篇】——30、class.dex文件格式讲解

1. classes.dex
 Android 程序编译以后生成一个 apk 文件,里面的 classes.dex 便存放着程序的运行字节码。

2. backsmali
ShakaApktool 使用 bs 命令即可对 classes.dex 实现反编译回 smali,而使用 s 命令可以把
smali 字节码编译为 classes.dex 文件
java –jar ShakaApktool bs xxx.dex –o smali 文件夹路径
java –jar ShakaApktool s smali –o xxx.dex

3. 010Editor
一种很常见的 16 进制查看工具,它的模板功能比较强大,可以通过脚本读取文件。

4. dex 文件
Android 系统源码的 dalvik/libdex 目录下存放的是 dex 文件相关的定义

DexHeader 存放 dex 文件的相关信息

ULeb 的作用

string_id 存放字符串信息

type_id 存放类型定义信息

proto_id 存放函数定位的信息

field_id 存放类型函数名称的描述符

method_id 存放方法的描述信息

class_def 存放类的结构信息

总会有不期而遇的温暖. 和生生不息的希望。
原文地址:https://www.cnblogs.com/devi1/p/13486416.html