// 此代码由autojs交流群于群里和网上整理提供 一键加群 如有侵权,请联系删除

1、Smali基本语法:

.field private isFlag:z  定义变量.method  方法.parameter  方法参数.prologue  方法开始.line 12  此方法位于第12行invoke-super  调用父函数const/high16 v0, 0x7fo3  把0x7fo3赋值给v0invoke-direct  调用函数return-void  函数返回void.end method  函数结束new-instance  创建实例iput-object  对象赋值iget-object  调用对象invoke-static  调用静态函数

2、条件跳转分支(最常用):nez改eqzeq改ne这类,逻辑取反,实现破解的目的。

"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_

3、if条件语句:

(1)if函数(java代码):

private boolean ifSense(){boolean tempFlag = ((3-2)==1)? true : false;if (tempFlag) {return true;}else{return false;}
}

(2)if函数分析(smail代码):

###文字描述:如果符合if分支则程序往下走,最终return ; 而如果条件不符合则会走到 :cond_0分支 , 最终执行 goto :goto_0走回 :goto_0返回.method private ifSense()Z
.locals 2.prologue
.line 22
const/4 v0, 0x1     // v0赋值为1.line 24
.local v0, tempFlag:Z
if-eqz v0, :cond_0            // 判断v0是否等于0, 不符合条件向下走, 符合条件执行cond_0分支.line 25
const/4 v1, 0x1            // 符合条件分支.line 27
:goto_0
return v1:cond_0
const/4 v1, 0x0            // cond_0分支goto :goto_0.end method

4、for循环语句:

(1)for函数(java代码):

private void forSense(){listStr = new ArrayList(COUNT);for (int i = 0; i < COUNT; i++) {listStr.add(“现在轮到我上场乐”);}
}

(2)for函数分析(smail代码):

.line 40
const/4 v0, 0x0.local v0, i:I
:goto_0
if-lt v0, v3, :cond_0            //  if-lt判断数值v0小于v3 ,    如不符合往下走, 符合执行分支 :cond_0.line 43
return-void.line 41
:cond_0                // 标签
iget-object v1, p0, Lcom/example/smalidemo/MainActivity;->listStr:Ljava/util/List;                // 引用对象const-string v2, "\u73b0\u5728\u8f6e\u5230\u6211\u4e0a\u573a\u4e50"invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z        // List是接口, 所以执行接口方法add.line 40
add-int/lit8 v0, v0, 0x1    // 将第二个v0寄存器中的值,加上0x1的值放入第一个寄存器中, 实现自增长goto :goto_0                // 回去:goto_0标签

安卓Autojs逆向破解必备基础smail基础语法相关推荐

  1. [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. [网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.上一篇文章分享了IDA Pro反汇编工具的基础用法,并简单讲解一个EXE逆向工程解 ...

  3. android unity hook,[原创]Unity3d安卓游戏DLL动态调式与HOOK基础

    [原创]Unity3d安卓游戏DLL动态调式与HOOK基础 2016-4-4 02:40 8207 [原创]Unity3d安卓游戏DLL动态调式与HOOK基础 2016-4-4 02:40 8207 ...

  4. Autojs脚本开发实战第一课 基础入门

    Autojs脚本开发课程 课件代码下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed Autojs概述 1.Autojs是什 ...

  5. android unity hook,Unity3d安卓游戏DLL动态调式与HOOK基础

    本帖最后由 xiaoxin520 于 2016-4-4 02:27 编辑 本文作者七少月,文章中很多观点和技术手段为本人原创,转载请注明出处,由于本人技术水平有限,不当之处,还请斧正. 前言: 由于本 ...

  6. 50 个 Redis 必备知识:基础知识,架构、调优和监控知识及难点解决

    本文包括:30 个 Redis 基础知识:10个 Redis 架构和运维必懂的知识:Redis 调优.监控知识和10个具体应用难点. 30 个 Redis 基础知识 1.Redis支持哪几种数据类型? ...

  7. 【前端词典】进阶必备的网络基础(下)

    前言 在上一篇我提到了前端面试频率较高的几个网络基础知识,这一篇我会把上一篇遗留的五个尽力讲清楚.如果还没有来得及看上一篇,那么现在可以一起看. 目录 接下来我会讲以下内容: 五类 IP 地址 跨域的 ...

  8. 【AI白身境】学AI必备的python基础​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]学AI必备的python基础 今天是新专栏<AI白身境>的第三篇,所谓白身,就是什么都不会,还没有进入角色. 上一篇给大家介绍了 ...

  9. swiper 滚回第一个数据_名企必备的数据分析基础技能:Python大法(一)

    现如今,大数据的发展越来越好,也越来越多的企业中大数据分析已经朝着更好的方向发展.也正是因为这个原因,数据分析行业的人才需求也变得火爆起来,尤其是数据分析.数据挖掘.数据科学家等高端人才,越来越稀缺. ...

  10. 最全攻略:数据分析师必备Python编程基础知识

    导读:本文主要介绍使用Python进行数据分析时必备的编程基础知识,主要涉及Python的基本数据类型.数据结构.程序控制.读写数据等内容. Python编写代码时,是以缩进作为代码块的标识,而不是使 ...

最新文章

  1. java实现排序二叉树
  2. python画散点图程序-Python散点图与折线图绘制过程解析
  3. 开发期间模板引擎页面修改以后,要实时生效 || 登陆成功,防止表单重复提交,可以重定向||只有登录之后才能访问相关的页面
  4. 链接oracle spatial,oracle spatial初试
  5. 驱动精灵2007_畅玩Steam的Win10游戏掌机发布! |莱莎2新战斗动画,肉腿致命驱动~...
  6. 台湾骑行环岛攻略(转)
  7. 新路由3 Newifi3 D2 刷入breed的方法
  8. windows 键盘快捷键
  9. 调试Linux OpenWrt 2.6.36+华为ME909s-821 4G模块
  10. 大数据征信是个人信用风险管理的必然趋势
  11. 搬砖之余干什么?推荐这几个优质公众号
  12. 云服务器bcc搭建网站,云服务器BCC(Baidu Cloud Compute)介绍
  13. 软件系统等保方案,市政项目,投标项目必须
  14. I.MX6ULL ARM驱动开发---platfrom设备驱动
  15. java摇号抽奖程序,Excel真的太强大了,能把抽奖功能做成车牌号摇号程序,真是人才...
  16. 微软最完善,百度最小气 看微软阿里百度三大物联网云平台对比
  17. 近视?老花眼?恢复视力,就用这一招!
  18. C语言现行标准C11的新特性
  19. 利用建造者(Builder)模式构建 Java 对象
  20. 2019北航961考研初试经验之谈

热门文章

  1. php uchome,【UCHome二次开发】模板解析
  2. R中输出常见位图和矢量图格式总结
  3. SQLite3:对SQLite3加密
  4. 利用com.googlecode.libphonenumber解析手机号归属地
  5. 魔兽单机服务器修改升级属性,魔兽世界单机版怎么调整人物级别(用户使用)?20分...
  6. 基于Android Studio+Android SDK的手机通讯录管理软件设计
  7. teraterm 执行sql命令_Tera Term怎么安装?Tera Term安装使用详细图文教程
  8. [转]《博客园精华集》ASP.NET分册第2论筛选结果文章列表
  9. java如何对一个表达式开根号_java实现开根号的运算
  10. 昆腾发力中小型带库市场 希翼布局整合解决方案