1.dalvik寄存器:32位,所有类型,<=32 一个寄存器    64:使用两个相邻寄存器

2.寄存器的命名法:v :局部变量寄存器 v0-vn  参数寄存器 vn-vn+m

p:参数寄存器p0 -pn     变量寄存器  v0-vn

第一种

第二种

流程 :java编译成.class在编译成.dex  最后反编译得到samli文件

 .java .class .dex →  smali

dx.jar:  .class打包.dex

dx --dex --output=Decrypt.dex com/yijinda/demo/Decrypt.class

Baksmali.jar:  . dex反编译成smali

java -jar baksmali.jar -o smali_out/ classes.dex

Samli.jar : .smali打包成.dex

java -jar smali.jar smali_out/ -o classes.dex

Dalvik     →   java

B

byte

C

char

S

short

I

int

J

long

F

float

D

double

Z

boolean

V

void

L

java类类型

[

数组类型

.field private isFlag:z  定义变量

.method  方法

.parameter  方法参数

.prologue  方法开始

.line 12  此方法位于第12行

invoke-super  调用父函数

const/high16  v0, 0x7fo3  把0x7fo3赋值给v0

invoke-direct  调用函数

return-void  函数返回void

.end method  函数结束

new-instance  创建实例

iput-object  对象赋值

iget-object  调用对象

invoke-static  调用静态函数

条件跳转分支:

"if-eq vA, vB, :cond_**"   如果vA等于vB则跳转到:cond_**

"if-ne vA, vB, :cond_**"   如果vA不等于vB则跳转到:cond_**

"if-lt vA, vB, :cond_**"    如果vA小于vB则跳转到:cond_**

"if-ge vA, vB, :cond_**"   如果vA大于等于vB则跳转到:cond_**

"if-gt vA, vB, :cond_**"   如果vA大于vB则跳转到:cond_**

"if-le vA, vB, :cond_**"    如果vA小于等于vB则跳转到:cond_**

"if-eqz vA, :cond_**"   如果vA等于0则跳转到:cond_**

"if-nez vA, :cond_**"   如果vA不等于0则跳转到:cond_**

"if-ltz vA, :cond_**"    如果vA小于0则跳转到:cond_**

"if-gez vA, :cond_**"   如果vA大于等于0则跳转到:cond_**

"if-gtz vA, :cond_**"   如果vA大于0则跳转到:cond_**

"if-lez vA, :cond_**"    如果vA小于等于0则跳转到:cond_**

Dalvik smali语法相关推荐

  1. Smali语法简单介绍

    Smali语言其实就是Davlik的寄存器语言: Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示 ...

  2. Android:Smali语法中文介绍

    原文地址:http://jishu521.com/post/annokie/7978799.html dalvik字节码有两种类型,原始类型和引用类型.对象和数组是引用类型,其它都是原始类型. Vvo ...

  3. SMALI语法入门教程

    安卓修改大师可以对任何没有加固过的APK安装包进行反编译,如果要实现破解或者增加功能,需要您有一定的SMALI语法基础.对安卓进行源代码级别的修改必须要在反编译生成的SMALI代码中进行修改.本教程是 ...

  4. 《0基础学安卓逆向》第2集:初始apk文件和smali语法

    1.APK文件 apk=android Application PacKage=APKapk文件是什么:是安卓app的安装文件本质:(apk文件其实就是个)zip压缩包 意味着可以用解压缩工具把apk ...

  5. smali语法中文版

           这是学习Smali重中之中,不过现在有些反编译的软件已经存在相应的插件,可以直接看到这些操作码名称的中文解释(如:Android killer),但是对其进行学习还是非常有必要的.以下是 ...

  6. notepad++ smali语法高亮模板分享

    某论坛也有,但是太难看了, 前面介绍了一些工具可以反编译dex文件为smali文件,在Android程序逆向分析中,阅读smali代码已然是十分重要的,但各种代码编辑器都无法较好的支持smali文件的 ...

  7. 011 smali语法详解

    文章目录 smali文件解读 描述类信息 静态字段 实例字段 直接方法 虚方法 接口 Smali基础语法 寄存器 数据类型 字段和方法的表示 Smali指令集 空操作指令 数据操作指令 返回指令 数据 ...

  8. apk反汇编之smali语法

    类型 Dalvik的字节码中拥有两个主要的类型:基类和引用类型.引用类型 引用类型是对象和数组,其他的一切都是基类   基类被一个简单的字符描述.我没有提出这些缩写词---他们实际以字符串的形式存储于 ...

  9. 《Android 安全(二)》Smali语法基础

    Github原文 Smali smali/baksmali 是Android的Java VM实现dalvik使用的dex格式的汇编程序/反汇编程序. 语法松散地基于Jasmin/ dedexer的语法 ...

最新文章

  1. 字符集 ISO-8859-1(1)
  2. [转载]为什么使用 SLF4J 而不是Log4J来做Java 日志
  3. Android线程详解
  4. HihoCoder - 1174 拓扑排序·一
  5. android退出app代码,Android应用退出代码各种方式
  6. Linux创建sqlite数据库文件,SQLite数据库的创建与附加
  7. flutter系列之将已存在的原生应用转化为混编应用
  8. 软件一定要联网安装,只有内网就干瞪眼
  9. java api cdm文档下载_Java-ORM数据库框架CDM介绍
  10. 该死的配置系统未能初始化
  11. 详解Spark Streaming的Graceful Shutdown
  12. SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理
  13. 百度之星资格赛 1003 度度熊与邪恶大魔王 DP 完全背包
  14. ios html录制视频,iPhone怎么录屏?玩转iOS14自带屏幕录制功能全攻略
  15. “清华女神”回国,赤子之心,如愿以偿
  16. 我遇到过最奇葩的初面!
  17. 输出所有的水仙花数。水仙花数是一个3位数:各位数字立方和等于该数本身。
  18. 电商平台“二选一” 最后买单的却是商家和消费者
  19. bootstrap-table 添加行保留原数据
  20. 关于C语言的%g和%G简要说明

热门文章

  1. php swoole 视频直播_swoole如何实现直播
  2. 仿新浪热门微博页面动态添加Tab标签与Fragment联动的实现
  3. 四十八个音素发音方法
  4. 如何使用groupby函数对数据进行分组(1)
  5. 企业内部系统产品人员对接规范
  6. 【移动开发】View的scrollTo()和scrollBy()区别
  7. 配置 WinHTTP 的代理设置
  8. 【雅思】雅思备考教材推荐--个人收集汇总
  9. ubuntu下安装google拼音输入法
  10. fx5u以太网通讯设置_图文简述三菱FX 5U以太网通讯的8大功能,你会用几种?