研究SMALI语法中的指令执行流程
发布时间
阅读量:
阅读量
掌握分析smali文件的方法时,在学习阶段有一些关键指令值得我们记住。这种技巧能帮助我们迅速解析smali文件。本文将列举一些典型的指令供参考:
1、数据操作指令:
数据操作指令的基本形式是move命令及其参数组合。 move指令会伴随不同的后缀部分依据字节码的大小和类型来决定。
简单举例如下:
移动vA,vB
将vA目标单元的内容复制至vB目标单元,并指定源和目的单元均为4位移位操作
移动/from16 vAA,vBBBB
将来自16位移位操作的结果加载到8位目标单元中
对目标进行赋值
运算结果为单字非对象类型
加载上一次invoke指令的操作结果至指定位置
将运行时异常加载到指定位置
2、返回指令
按回车键结束程序流程
通过按回车键退出该函数
当函数返回时会将结果放在寄存器vAA中
表示函数返回一个32位非对象类型的数据并将该数据保存在寄存器vAA中
表示函数返回的对象类型并将该对象存储在寄存器vAA中
3、数据定义指令
数据定义指令常用于各种场景;其中核心的操作符是const。 const/4\ vA,\ #+B 在将数值符号扩展至32位之后,则会将其存储于寄存器vA中。 const\ vAA,\ #+BBBBBBBB 则会将其存储于寄存器vAA中。 $const-string\ vAA,str
全部评论 (0)
还没有任何评论哟~
