安卓如何逆向_Dalvik 寄存器,字节码,指令格式 1

0x01 dalvik寄存器
32位,所有类型, .class -->.dex -->samlidx.jar ----- .class打包.dex
dx --dex --output=decrypt.dex com/xxx/xxx/decrypt.classbaksamli.jar------- .dex反编译成 samli
java -jar baksmali.jar -o smali_out/class.dexsamli.jar-----.smali打包成.dex
java -jar smali.jar smali_out/ -o classes.dex0x04 dalvik字节码类型
dalvikjava
b byte
c char
s short
i int
j long
f float
d double
z boolean
v void
l java类类型
[ 数组类型
0x05 字段
表示的是成员变量
字段格式: 类型(包名/类名) ->字段名称:字段类型lpackage/name/objectname;->fieldname:ljava/lang/string;相当于package com.yjhclass objectname{ string fieldname;}0x05 方法
字段格式: 类型(包名/类名) ->方法名方法的签名信息lpackage/name/objectname;->methodname(iii)z(iii)z:这部分表示方法的签名信息相当于package com.yjhclass objectname{ public boolean methodname(int a,int b ,int c){ }}0x06 dalvik指令格式
基础字节码-名称后缀/字节后缀 目的寄存器 源寄存器
名称后缀是wide,表示数据宽度为64位
字节码后缀是from16,表示源寄存器为16位
move-wide/from16 vaa,vbbbbmove 为基础字节码,即opcodewide 为名称后缀,标识指令操作的数据宽度为64位from16 为字节后缀,标识源为一个16位的寄存器引用变量vaa 为目的寄存器,它始终在源寄存器签名,取值范围为v0-v255vbbbb 为源寄存器,取值范围v0-65535dalvik指令集中大多数指令用到了寄存器作为目的操作数活源操作数,其中
a/b/c/d/e/f/g/h 代表一个四位的数值,aa/bb/.../hh 代表一个8位的数值,aaaa/bbbb/.../hhhh 代表一个16位的数值0x06 dalvik指令
空操作指令nop空操作指令的助记符为nop。它的值为00,通常nop指令被用来做对齐码使用,无实际操作

HOLTEK新推出HT66F26D高电流LED驱动Enhanced A/D型Flash MCU
菲斯克固态锂离子电池将开始量产,可能搭载在FiskerEMotion
小米mix首创“全面屏” 从黑科技看手机改变世界
Unique Network被选为联合国相关NFT气候倡议组织的独家区块链合作伙伴
5G/AI时代 摄像头产业链也将迎来千亿级市场
安卓如何逆向_Dalvik 寄存器,字节码,指令格式 1
又一家中国企业旷视开源深度学习框架
德州仪器(TI)推出集成USB连接功能的32位Piccolo F2806xU MCU
锂电池组为能源储存提供更好的解决方案
德国政府制定多项应对气候变化的政策 政策成本高达600亿美元
存储峰会-数据存储的新未来
Achronix宣布其Speedcore eFPGA IP核出货量超千万个
2天仅卖75台,为啥做的手机都卖不出去董明珠还是要咬牙坚持做手机呢
中国研制的自动驾驶飞行器在韩国试飞:最大载荷220千克,最大航程35公里
美团展示无人配送城市大脑技术
系统安全基石IP-OTPC(一)什么是OTP
高大上的曲屏电视,为何没能在市场中引领潮流呢?
电机原理及几个重要公式
用于数据中心和关键任务设施的智能机架控制器 (SRC)
智慧公安刑侦情报研判系统开发重点人员管控系统开发