一文带你熟悉android的smali语法一
1.smali必须掌握的关键字
.locals 表示方法内使用的v开口的寄存器个数。.prologue 表示方法中代码的开始处。.line 表示对应java中的行数。.annotation/.end annotation 表示注释的开始和结束。.implements 表示接口实现。.field 表示定义字段。.method/.end method 表示方法的开始和结束。.class 表示包名+类名。.super 表示父类类名。.source 表示源文件的名称。.param 表示指定了方法的参数。
(注:#开头的表示注释)
2.几个关键格式解析
.class <访问权限修饰符>[非权限修饰符] <类名>.super<父类名>.source<源文件名称>以上格式的详细解释 访问权限修饰符既所谓的public, protected, private。非权限修饰符则指final,abstract,static。
.implements <接口名称>.field描述字段的定义,分为静态变量和普通变量 静态变量#static fields.field <访问权限> static[修饰词]<字段名>:<变量类型>上面表示使用#static fields注释,并加了static修饰符
普通变量#instance fields.field<访问权限修饰符> [非权限修饰符] <变量名>:<变量类型>
#direct methods 直接方法:不能被覆写的方法,包括static,private修饰的方法#virtual methods 虚方法:可以被覆写的方法,包括public、protected修饰的方法
.method格式.method <访问权限修饰符>[非访问权限修饰符]<方法原型><.locals><.prologue><.line>…end
几个相对特殊的用法 .method xxx constructor ()V //类中final变量的初始化.method xxx constructor ()V //类中的构造行数.method static synthetic methodName(xxxx)V //加synthetic修饰符的方法,synthetic是合成的意思
3.数据类型
Dalvik字节码中有8中基本数据类型,对象和数组是引用类型。基本数据类型和返回类型用一个大写字母表示。对象类型用一个大写字母L加对象的全限定名表示,如 Ljava/lang/String表示字符串对象类型。一维数组用一个‘[’加输了类型或对象类型表示。
smali中8个基本数据类型它们分别为:Z(boolean),B(byte),S(short),C(char),I(int),L(long),F(float),D(double)
数据定义指令用于定义代码中使用的常量,字符串,类等数据类型,基础字节码是const
锁指令多用于多线程程序中对同一对象的操作。 monitor-enter vAA: 为指定的对象(VAA)获取锁 monitor-exit vAA:释放指定的对象(VAA)的锁。
wide表示指令操作的数据宽度为64位宽度
网络安全成长路线图
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成hei客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:
# 网络安全学习方法
上面介绍了技术分类和学习路线,这里来谈一下学习方法:
## 视频学习
无论你是去B站或者是油管上面都有很多网络安全的相关视频可以学习,当然如果你还不知道选择那套学习,我这里也整理了一套和上述成长路线图挂钩的视频教程,完整版的视频已经上传至CSDN官方,朋友们如果需要可以点击这个链接免费领取。网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
一文带你熟悉android的smali语法一相关推荐
- 独家 | 一文带你熟悉贝叶斯统计
作者:Matthew Ward 翻译:陈之炎 校对:陈丹 本文约5000字,建议阅读10+分钟 本文为你带来贝叶斯统计的基础示例及全面解释. 标签:贝叶斯统计 图:Unsplash,Chris Liv ...
- 一文带你了解android的root原理
1.root背景 android环境下,刷机与Root是Android手机逆向爱好者最热衷的事情.即使国行手机的用户也不惜冒着失去保修的风险对Root手机乐此不疲. 2.Root的解析 **Root是 ...
- android phone驱动_一文带你掌握 Android 系统架构
引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制.虽然Android系统非常 ...
- 一文带你熟悉Pytorch->Caffe->om模型转换流程
摘要:本文旨在分享Pytorch->Caffe->om模型转换流程. 标准网络 Baseline:PytorchToCaffe 主要功能代码在: PytorchToCaffe +-- Ca ...
- 用dos复制文件_一文带你熟悉DOS命令操作,CMD从此不再是路人!
DOS常用命令: 1. 什么是DOS命令,如何打开dos窗口? A:首先:DOS命令是在DOS窗口输入的一系列命令,通过执行这些命令我们可以完成文件的新建.编辑.保存等操作. 打开DOS命令有两种方式 ...
- 一文带你熟悉简单实用的Python科学计算库NumPy
Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...
- android 波斯文排序,java – 在Android中有波斯语(Shamsi或Jalali)日历的库或算法吗?...
我使用这个算法多年,它是非常准确的. 使用它和享受!
- Android给文档加水印,Android文档水印之PDF水印
随着移动终端办公化的普及,在Android手机中阅读文档已经是很普遍的事情了,但是有些文档可能是涉及到一些企业机密与敏感的内容,不希望随意扩散出去.为了防止重要的文档被截屏或者拍照而泄露,在文档中加上 ...
- 一文带你了解ARM的发展历程
转自:一文带你了解ARM的发展历程 ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权.却做到了在手持设备市场上占有90%以上的份额.软银在2016年耗资300多亿美元拿下ARM,使得本来就大红 ...
最新文章
- logsoftmax(dim=1)是对批量样本中的每个样本取概率,而不是针对每个特征
- 吴恩达推荐笔记:22 张图总结深度学习全部知识
- 软件行业里学历和资历哪个更重要?
- Redis 管道技术
- 【IDAX投研中心】BCH果然最强
- questasim linux安装包,Ubuntu16.04下Questasim10.7安装(64bit)全攻略
- EOS账户系统(4)账户权限分级
- 移动app测试的多样性_app移动端接口性能测试
- “大数据杀熟”成网络热词,科技公司信任危机到来?
- 小师妹学JVM之:cache line对代码性能的影响
- 使用vue-cli脚手架搭建简单项目框架
- UESTC 1636 梦后楼台高锁,酒醒帘幕低垂
- asp.net 将bmp格式图片怎么转换为jpg_Heic图片转换精灵-Heic图片高清转换JPG/PNG/BMP方法...
- A-Graph Games_2019牛客暑期多校训练营(第三场)
- LamBda学习(一)
- java获取access token_【Java示例】如何获取AccessToken
- 做meta分析:使用R软件绘制森林图
- CAD,SolidWorks相比ProE,UG等软件有什么区别?怎么下载?
- 我眼中的光明·第八周·豫卦上六·三
- java fx scen,java基础:10.2 Java FX之显示图片