if语法: if 如果 label 标签 (e)(eq)equal 等于 (z)zero 零 (n)not 不 (gt)greater than 大于 (lt)less than 小于 (ge) 大于等于(greater than equal) (le) 小于等于(less than equal)
"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_
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_
move vx,vy 动作内容为vx,vy move-object vx,vy 把vy对象引用到vx move-result vx 把以前的方法调用的结果值保存到vx move-result-object vx 把以前的方法调用的结果值保存为vx
return-void 无返回值返回 return vx 返回vx move-result-object vx 返回对象引用值vx const/4 vx,lit4 将lit4保存到vx,位宽为4
帮忙更新(转) if-it v0 v1 label_10 这个意思就是判断v0(它是一个数,比如你的积分)是否小于v1(程序的所需积分),那就跳转到函数10 只需将it改为ge 就行了,这个可以用来破解所需的积分要求 还有些判断符合,比如: ne是不等于 eq是等于 nez也是不等与于 eqz是等于 ge是大于等于 gt是大于 it小于 le小于等于
Smali基本语法 .field private isFlag:z 定义变量 .method 方法 .parameter 方法参数 .prologue 方法开始 .line 12 此方法位于第12行 invoke-super 调用父函数 const/high16 v0, 0x7fo3 把0x7fo3赋值给v0 invoke-direct 调用函数 return-void 函数返回void .end method 函数结束 new-instance 创建实例 iput-object 对象赋值 iget-object 调用对象 invoke-static 调用静态函数 条件跳转分支: "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* add-float/2addr vx, vy 计算vx + vy并将结果存入vx。 add-float/2addr v0,v4 计算v0 + v4并将结果存入v0。 sub-float/2addr vx, vy 计算vx - vy并将结果存入vx。 sub-float/2addr v0,v4 计算v0 - v4并将结果存入v0。 mul-float/2addr vx, vy 计算vx vy并将结果存入vx。 mul-float/2addr v0, v1 计算v0 * v1并将结果存入v0。
div-float/2addr vx, vy 计算vx / vy并将结果存入vx。 div-float/2addr v0, v1 计算v0 / v1并将结果存入v0。 rem-float/2addr vx, vy 计算vx % vy并将结果存入vx。 rem-float/2addr v0, v1 计算v0 % v1并将结果存入v0。 add-double/2addr vx, vy 计算vx,vx+1 + vy,vy+1并将结果存入vx,vx+1注1。 add-double/2addr v0, v7 计算v0,v1 + v7,v8并将结果存入v0,v1。 sub-double/2addr vx, vy 计算vx,vx+1 - vy,vy+1并将结果存入vx,vx+1注1。 sub-double/2addr v0, v7 计算v0,v1 - v7,v8并将结果存入v0,v1。 mul-double/2addr vx, vy 计算vx,vx+1 vy,vy+1并将结果存入vx,vx+1注1。 mul-double/2addr v0, v2 计算v0,v1 v2,v3并将结果入v0,v1。