Java层逆向--Dalvik指令集

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

往期推荐

Java层逆向分析-Dalvik字节码

修改资源去广告

修改包名实现分身

篡改Apk名称、图标

AndroidKiller介绍与使用

Dalvik的指令格式:
基础字节码 - 名称后缀/字节码后缀 目的寄存器 源寄存器

(连接符号“- ”在有的指令里是可以不存在的)

名称后缀是wide,表示数据宽度为64位
字节码后缀是from16,表示源寄存器为16位

例如:move-wide/from16 vAA,VBBBB:
move为基础字节码,即opcode。
wide为名称后缀,标识指令操作的数据宽度为64位。
from16为字节码后缀,标识源为一个16位的寄存器引用变量。
vAA为目的寄存器, 它始终在源的前面,取值范围为v0~v255。
vBBBB为源寄存器,取值范围为v0~v65535。

Dalvik 指令集中大多数指令用到了寄存器作为目的操作数或源操作数,其中 A/B/C/D/E/F/G/H 代表一个4位的数值,AA/BB/…/HH代表一个8位的数值,AAAA/BBBB/…/HHHH 代表一个16位的数值。

空操作指令

空操作指令的助记符为nop。它的值为00,通常nop指令被用来做对齐代码之用,无实际操作。

数据操作指令

数据操作指令为move。move 指令根据字节码大小与类型不同,后面会跟上不同的后缀,表达的意义也就不同。

“move vA, vB”:将vB寄存器的值赋给vA寄存器,源寄存器与目的寄存器都为4位。

“move/from16 vAA, vBBBB”:将vBBBB寄存器的值赋给vAA寄存器,寄存器为16位,目的寄存器为8位。

“move/16 vAAAA, vBBBB”:将vBBBB寄存器的值赋给vAAAA寄存器,源寄存器与目的寄存器都为16位。

“move-wide vA, vB”:为4位的寄存器对赋值。源寄存

Android逆向工程:Smali语法解析完整指南 Smali语法指南摘要 本文详细介绍了Android反编译后的Smali中间表示语法,主要内容包括: Smali基础:dex文件与smali文件的相互转换关系 数据类型系统:包含8种基本数据类型和对象类型的表示方法 字节码语法:字段和方法定义的标准格式 寄存器机制:本地寄存器(v0-vN)和参数寄存器(p0-pN)的使用规则 方法结构:包括访问修饰符定义和特殊方法(构造方法、静态初始化块) 字段结构:声明语法和访问控制修饰符 指令系统:重点介绍了常量指令(整数和字符串)的操作方法 文中配有大量示例代码 阅读详情

相关推荐

smali 语法

1.smaliapk文件通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件。smali语言是Davlik的寄存器语言,语法上和汇编语言相似,Dalvik VM与JVM的最大的区别之一就是Dalvik VM是基于寄存器的。基于寄存器的意思是,在smali里的所有操作都必须经过寄存器来进行。2.基本数据类型B—byteC—charD—doubleF—floatI—...

hgl868的专栏 4731

smali中文语法详细说明

android逆向工程 smali中文语法详细说明

安卓手游逆向

数据定义指令用来定义程序中用到的常量,字符串,类等数据。const/4 vA,#+B:将数值符号扩展为32位后赋给寄存器vA。const/16 vAA,#+BBBB”:将数据符号扩展为32位后赋给寄存器vAAconst vAA,#+BBBBBBBB:将数值赋给寄存器vAA。const/bigh16 vAA,#+BBBB0000:将数值右边零扩展为32位后赋给寄存器vAA。const-wide/16 vAA,#+BBBB:将数值符号扩展为64位后赋给寄存器对vAA。

qq_46093575的博客 2019

安卓逆向入门——smali语法(上)

【代码】安卓逆向入门——smali语法(上)

不会算法的小白的博客 1486

Smali入门手册

Smali语法学习摘要欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用M...

cmdkeeper 9534

011 smali语法详解

文章目录smali文件解读描述类信息静态字段实例字段直接方法虚方法接口Smali基础语法寄存器数据类型字段和方法的表示Smali指令集空操作指令数据操作指令返回指令数据定义指令跳转指令方法调用指令 smali文件解读 描述类信息 在打开Smali文件时,它的头三行描述了当前类的一些信息: .class public Lcom/test/helloworld16/MainActivity; .super Landroid/support/v7/app/AppCompatActivity; .source "M

鬼手的博客 1万+

vc通过编译指令传参_java逆向分析方Dalvik指令集

点击蓝字默默关注Dalvik的指令格式:基础字节码 - 名称后缀/字节码后缀 目的寄存器 源寄存器(连接符号“- ”在有的指令里是可以不存在的)名称后缀是wide,表示数据宽度为64位字节码后缀是from16,表示源寄存器为16位例如:move-wide/from16 vAA,VBBBB:move为基础字节码:即opcode。wide为名称后缀:标识指令操作的数据宽度为64位。from...

weixin_39636245的博客 1467

java将不规律的文字放在数组_java逆向分析方Dalvik指令集

点击蓝字默默关注Dalvik的指令格式:基础字节码 - 名称后缀/字节码后缀 目的寄存器 源寄存器(连接符号“- ”在有的指令里是可以不存在的)名称后缀是wide,表示数据宽度为64位字节码后缀是from16,表示源寄存器为16位例如:move-wide/from16 vAA,VBBBB:move为基础字节码:即opcode。wide为名称后缀:标识指令操作的数据宽度为64位。from...

weixin_31446915的博客 1301

Android逆向基础——Dalvik 指令集

Dalvik指令集是学习Android虚拟机中必不可少的知识点,它是被Android虚拟机所识别且直接执行的指令。

玄道的网安博客 6385

Android 逆向笔记 —— 说说 Dalvik 及其指令集

文末有彩蛋~~在进入正题之前,推荐阅读一下之前的两篇文章。第一篇是我的一篇译文 —— 译文找不到了,就放一下原文吧。Closer Look At Android Runt...

文淑的博客 631

Dalvik指令集

声明 : 文章是看> 的所写笔记。 Dalvik指令格式 一段Dalvik汇编代码由一系列Dalvik指令组成,指令语法由指令的位描述与指令格式标识来决定。位描述约定如下:      ● 每16位的字采用空格分隔开来。      ● 每个字母表示4位,每个字母按顺序从高字节开始,排列到低字节。每4位之间可能使用竖线 “|” 来表示不同的内容。      ● 顺序采用 A ~ Z

yx0914 6080

安卓逆向_3 --- Dalvik 字节码、Smali 详解

Dalvik 字节码、Smali 详解

freeking101的博客 9681

全网最全 Dalvik 指令集解析 !

为什么是全网最全,因为根本没人整理 Dalvik 指令集。。本文档纯粹作为一个 Dalvik 指令集速查表,相信一定有需要的同学。手机端可能阅读体验比较差,文末扫码关注公众号,回复 Da...

秉心说 799

Java逆向分析方法和技巧

更多内容请移步公众号:坚毅猿。dex文件是没有变的。

1010

移动安全Android逆向系列:Dalvik概念&破解实例

本篇文章是Android逆向系列的第三篇,开始介绍Dalvik虚拟机的相关知识,认识dex和smali文件格式和熟悉Dalvik字节码及指令集,对Dalvik指令集有个大概的了解就可以开始简单的反编译静态分析了,后面提及了安卓开发四大组件和使用Eclipse开发一个简单的apk例子,最后以一个破解实例加深全文的知识概念,进一步熟悉工具的使用及Dalvik指令集。 一、Dalvik 1、Dalvik介绍 Dalvik是google专门为Android操作系统设计的一个虚拟机,Dalvik VM是基于寄存器.

jklbnm12的博客 1643

安卓逆向系列教程(一)Dalvik 指令集

安卓逆向系列教程(一)Dalvik 指令集 作者:飞龙 寄存器Dalvik 指令集完全基于寄存器,也就是说,没有栈。所有寄存器都是 32 位,无类型的。也就是说,虽然编译器会为每个局部变量分配一个寄存器,但是理论上一个寄存器中可以存放一个int,之后存放一个String(的引用),之后再存放一个别的东西。如果要处理 64 位的值,需要连续的两个寄存器,但是代码中仍然只写一个寄存器。这种情况下,你

龙哥盟 5万+
上一篇: Java层逆向分析-Dalvik字节码
下一篇: Smali文件详解
YJJYXM
博客等级 码龄7年 214粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值