Dalvik smali语法
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语法相关推荐
- Smali语法简单介绍
Smali语言其实就是Davlik的寄存器语言: Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示 ...
- Android:Smali语法中文介绍
原文地址:http://jishu521.com/post/annokie/7978799.html dalvik字节码有两种类型,原始类型和引用类型.对象和数组是引用类型,其它都是原始类型. Vvo ...
- SMALI语法入门教程
安卓修改大师可以对任何没有加固过的APK安装包进行反编译,如果要实现破解或者增加功能,需要您有一定的SMALI语法基础.对安卓进行源代码级别的修改必须要在反编译生成的SMALI代码中进行修改.本教程是 ...
- 《0基础学安卓逆向》第2集:初始apk文件和smali语法
1.APK文件 apk=android Application PacKage=APKapk文件是什么:是安卓app的安装文件本质:(apk文件其实就是个)zip压缩包 意味着可以用解压缩工具把apk ...
- smali语法中文版
这是学习Smali重中之中,不过现在有些反编译的软件已经存在相应的插件,可以直接看到这些操作码名称的中文解释(如:Android killer),但是对其进行学习还是非常有必要的.以下是 ...
- notepad++ smali语法高亮模板分享
某论坛也有,但是太难看了, 前面介绍了一些工具可以反编译dex文件为smali文件,在Android程序逆向分析中,阅读smali代码已然是十分重要的,但各种代码编辑器都无法较好的支持smali文件的 ...
- 011 smali语法详解
文章目录 smali文件解读 描述类信息 静态字段 实例字段 直接方法 虚方法 接口 Smali基础语法 寄存器 数据类型 字段和方法的表示 Smali指令集 空操作指令 数据操作指令 返回指令 数据 ...
- apk反汇编之smali语法
类型 Dalvik的字节码中拥有两个主要的类型:基类和引用类型.引用类型 引用类型是对象和数组,其他的一切都是基类 基类被一个简单的字符描述.我没有提出这些缩写词---他们实际以字符串的形式存储于 ...
- 《Android 安全(二)》Smali语法基础
Github原文 Smali smali/baksmali 是Android的Java VM实现dalvik使用的dex格式的汇编程序/反汇编程序. 语法松散地基于Jasmin/ dedexer的语法 ...
最新文章
- 字符集 ISO-8859-1(1)
- [转载]为什么使用 SLF4J 而不是Log4J来做Java 日志
- Android线程详解
- HihoCoder - 1174 拓扑排序·一
- android退出app代码,Android应用退出代码各种方式
- Linux创建sqlite数据库文件,SQLite数据库的创建与附加
- flutter系列之将已存在的原生应用转化为混编应用
- 软件一定要联网安装,只有内网就干瞪眼
- java api cdm文档下载_Java-ORM数据库框架CDM介绍
- 该死的配置系统未能初始化
- 详解Spark Streaming的Graceful Shutdown
- SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理
- 百度之星资格赛 1003 度度熊与邪恶大魔王 DP 完全背包
- ios html录制视频,iPhone怎么录屏?玩转iOS14自带屏幕录制功能全攻略
- “清华女神”回国,赤子之心,如愿以偿
- 我遇到过最奇葩的初面!
- 输出所有的水仙花数。水仙花数是一个3位数:各位数字立方和等于该数本身。
- 电商平台“二选一” 最后买单的却是商家和消费者
- bootstrap-table 添加行保留原数据
- 关于C语言的%g和%G简要说明