Smali语法基础】的更多相关文章

Smali是什么 Smali是Android虚拟机的反汇编语言. 我们都知道,Android代码一般是用java编写的,执行java程序一般需要用到java虚拟机,在Android平台上也不例外,但是出于性能上的考虑,并没有使用标准的JVM,而是使用专门的Android虚拟机(5.0以下为Dalvik,5.0以上为ART).Android虚拟机的可执行文件并不是普通的class文件,而是再重新整合打包后生成的dex文件.dex文件反编译之后就是Smali代码,所以说,Smali语言是Androi…
dalvik字节码有两种类型,原始类型和引用类型.对象和数组是引用类型,其它都是原始类型. V  void Z  boolean B  byte S  short C  char I  int F  float J  long(64位) D  double(64位) 对象的形式表示:Lpackage/name/ObjectName; 前面的L表示这是一个对象类型,package/name/是该对象所在的包,ObjectName是对象的名字,“;”表示对象名称的结束. 相当于java中的packa…
1.Smali语言基础语法-数据类型与描述符 smali中有两类数据类型:基本类型和引用类型.引用类型是指数组和对象,其它都是基础类型. 基本类型以及每种类型的描述符: Java类型 类型描述符 说明 boolean Z  布尔型 byte B  字节型 short S 短整型 char C  字符型 int I 整型 long J  长整型 float F 双精度型 void V 返回类型 引用类型分两种,对象类型与数组类型: 对象类型表示形式为L包名/对象类型:,即Lpackagename/…
前言 前面我们有说过android反编译的工具,如何进行反编译.反编译后可以得到jar或者得到smali文件.Android采用的是java语言 进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代 码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思.因此,我们有必要熟悉smali语法. 类型的表示 java里面包含两种类型,原始类型和引用类型(包括对象)…
0x01.前言 Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代码,jar的话可能很多地方无法正确的解释出来,如果我们反编译的是smali则可以正确的理解程序的意思.因此,我们有必要熟悉smali语法. 0x02.关键字 .field private isFlag:z — 定义变量 .method — 方法 .parameter — 方法参数 .prologue —…
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 网络与多线程 第六章 数据操作 第一章简略分为6小节配上一道综合的练习题. 1:java开发环境搭建和eclipse的安装 2:java中的变量和常量 3:java常用运算符 4:java流程控制语句 5:使用Arrays类操作数组 和foreach 6:java中的方法和重载 根据这个学习思路…
作为自己正式接触并应用的第一门编程语言,在Alex和武sir两位大王的要求下,开始了写博客总结的日子.学习编程语言是很有趣的一件事情,但有2点请一定要谨记:1.做人靠自己,码代码也必须靠自己.能不能成为python大牛,靠的是平时逻辑的训练和日复一日的码代码练出来的:2.多总结.多思考.多查阅.实现需求的方式有多种,但总会有另一个办法是更加高效的! 博文内容属于基础篇,实时更新,如有地方写的不好,还请大家批评指正! 大人不华,君子务实! python的语法基础 ''' 1.python的换行缩进…
1.PHP语法基础 PHP标记符 <?php ?> 常亮与变量 $a = 10; 变量 可以在运行过程中修改 $a = 10; $a = 20; $b = 5; echo $a+$b; const THE_VALUE = 100; 常量 只能被赋值一次,否则会报语法错误 const THE_VALUE = 100; //THE_VALUE = 200; 有语法错误 运行时会报错 echo THE_VALUE; 在PHP4中定义常量的方法 define('THE_VALUE',200); //T…
Smali背景: Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器.其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等). Smali,Baksmali分别是冰岛语中编译器,反编译器的叫法.也许你会问为什么是冰岛语呢,因为Dalvik是一个冰岛渔村名字.   Smali语法简单介绍如下: Davlik字节码中,寄存器都是32位的,能够支持任何类型,64位类型…
Verilog语法基础讲解之参数化设计   在Verilog语法中,可以实现参数化设计.所谓参数化设计,就是在一个功能模块中,对于一个常量,其值在不同的应用场合需要设置为不同的置,则将此值在设计时使用parameter 关键字声明,那么在上层模块例化使用该功能模块时,可以根据具体需求重新配置该常量的值,从而实现不同应用场合对对应常量的灵活调整.   以下为使用Verilog设计的一个控制LED闪烁灯的模块代码:   01    module counter(Clk,Rst_n,led); 02…