学习

Android dex学习

编写一个java代码

public class first
{
	public static void main(String[] args)
	{
			System.out.println("xxxxxxx!");
		
	}
}

用javac编译(配置好java环境)

PS C:\Users\49227\Desktop> javac C:\Users\49227\Desktop\first.java

java first输出一下

编译为.class文件 .class并不是直接运行在系统进程上的,而是通过一个java虚拟机来进行托管。

class文件就不解析了 可以用 javap -v first 命令查看一下大致情况

把class文件转换为dex文件,用Android SDK路径下的./build-tools/…/dx

 dx --dex --output=first.dex first.class

img

1560333762909头文件信息

magic 0x0 8 魔数字段,值为”dex\n035\0”
checksum 0x8 4 校验码
signature 0xc 20 sha-1签名
file_size 0x20 4 dex文件总长度
header_size 0x24 4 文件头长度,009版本=0x5c,035版本=0x70
endian_tag 0x28 4 标示字节顺序的常量
link_size 0x2c 4 链接段的大小,如果为0就是静态链接
link_off 0x30 4 链接段的开始位置
map_off 0x34 4 map数据基址
string_ids_size 0x38 4 字符串列表中字符串个数
string_ids_off 0x3c 4 字符串列表基址
type_ids_size 0x40 4 类列表里的类型个数
type_ids_off 0x44 4 类列表基址
proto_ids_size 0x48 4 原型列表里面的原型个数
proto_ids_off 0x4c 4 原型列表基址
field_ids_size 0x50 4 字段个数
field_ids_off 0x54 4 字段列表基址
method_ids_size 0x58 4 方法个数
method_ids_off 0x5c 4 方法列表基址
class_defs_size 0x60 4 类定义标中类的个数
class_defs_off 0x64 4 类定义列表基址
data_size 0x68 4 数据段的大小,必须4k对齐
data_off 0x6c 4 数据段基址

1560335165139

使用apktool(官网链接:https://ibotpeaches.github.io/Apktool/install/)

1560331261706

新建了个apktool文件夹.第一步载apktool.bat,把鼠标移至wrapper script上,然后右击,链接另存为…,把下载来的文件放到.\apktool;第二步,下载apktool.jar文件,点击find newest here,跳到下载页,修改名称为apktool.jar;第三步,配置环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值