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语法一相关推荐

  1. 独家 | 一文带你熟悉贝叶斯统计

    作者:Matthew Ward 翻译:陈之炎 校对:陈丹 本文约5000字,建议阅读10+分钟 本文为你带来贝叶斯统计的基础示例及全面解释. 标签:贝叶斯统计 图:Unsplash,Chris Liv ...

  2. 一文带你了解android的root原理

    1.root背景 android环境下,刷机与Root是Android手机逆向爱好者最热衷的事情.即使国行手机的用户也不惜冒着失去保修的风险对Root手机乐此不疲. 2.Root的解析 **Root是 ...

  3. android phone驱动_一文带你掌握 Android 系统架构

    引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制.虽然Android系统非常 ...

  4. 一文带你熟悉Pytorch->Caffe->om模型转换流程

    摘要:本文旨在分享Pytorch->Caffe->om模型转换流程. 标准网络 Baseline:PytorchToCaffe 主要功能代码在: PytorchToCaffe +-- Ca ...

  5. 用dos复制文件_一文带你熟悉DOS命令操作,CMD从此不再是路人!

    DOS常用命令: 1. 什么是DOS命令,如何打开dos窗口? A:首先:DOS命令是在DOS窗口输入的一系列命令,通过执行这些命令我们可以完成文件的新建.编辑.保存等操作. 打开DOS命令有两种方式 ...

  6. 一文带你熟悉简单实用的Python科学计算库NumPy

    Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...

  7. android 波斯文排序,java – 在Android中有波斯语(Shamsi或Jalali)日历的库或算法吗?...

    我使用这个算法多年,它是非常准确的. 使用它和享受!

  8. Android给文档加水印,Android文档水印之PDF水印

    随着移动终端办公化的普及,在Android手机中阅读文档已经是很普遍的事情了,但是有些文档可能是涉及到一些企业机密与敏感的内容,不希望随意扩散出去.为了防止重要的文档被截屏或者拍照而泄露,在文档中加上 ...

  9. 一文带你了解ARM的发展历程

    转自:一文带你了解ARM的发展历程 ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权.却做到了在手持设备市场上占有90%以上的份额.软银在2016年耗资300多亿美元拿下ARM,使得本来就大红 ...

最新文章

  1. logsoftmax(dim=1)是对批量样本中的每个样本取概率,而不是针对每个特征
  2. 吴恩达推荐笔记:22 张图总结深度学习全部知识
  3. 软件行业里学历和资历哪个更重要?
  4. Redis 管道技术
  5. 【IDAX投研中心】BCH果然最强
  6. questasim linux安装包,Ubuntu16.04下Questasim10.7安装(64bit)全攻略
  7. EOS账户系统(4)账户权限分级
  8. 移动app测试的多样性_app移动端接口性能测试
  9. “大数据杀熟”成网络热词,科技公司信任危机到来?
  10. 小师妹学JVM之:cache line对代码性能的影响
  11. 使用vue-cli脚手架搭建简单项目框架
  12. UESTC 1636 梦后楼台高锁,酒醒帘幕低垂
  13. asp.net 将bmp格式图片怎么转换为jpg_Heic图片转换精灵-Heic图片高清转换JPG/PNG/BMP方法...
  14. A-Graph Games_2019牛客暑期多校训练营(第三场)
  15. LamBda学习(一)
  16. java获取access token_【Java示例】如何获取AccessToken
  17. 做meta分析:使用R软件绘制森林图
  18. CAD,SolidWorks相比ProE,UG等软件有什么区别?怎么下载?
  19. 我眼中的光明·第八周·豫卦上六·三
  20. java fx scen,java基础:10.2 Java FX之显示图片

热门文章

  1. 3D建模要学多久才能接外包私活?
  2. MyBatis日期用法技巧
  3. 邮件经常失败回弹很糟心?一定要知道这几个小知识
  4. demonstration记忆_记忆英语单词方法20种
  5. Fedora 安装 QQ2012
  6. 联想台式电脑一键恢复后桌面没有计算机了,联想笔记本一键恢复功能使用教程...
  7. 常见夸张标题,博人眼球
  8. 几个学习Python的网站推荐
  9. 第五天实验---MGRE环境下的OSPF实验
  10. ios8 系统定位问题