android的逆向首先,我们都需要具备一些基础知识。
我们先来学习手机端的逆向,在这里,我推荐使用2款软件,第一款,是mt管理器,是逆向分析的神器,拥有多种编辑操作功能。只是有些功能需要vip,大家可以用也可以不用,mt管理器支持一代和二代。我觉得不需要使用二代的vip功能的话,最好一代也装上。第二款,是apktool助手,具有强大的反编译功能,给你更好的进行分析和破解。还有一些在线的小工具以及插件,都非常使用,android开发者的小助手。
然后,我们先学习一些mt管理器。mt管理器主要是将android的内部文件的dex文件转化成smail语言,所以至此,我们得先学习一下smail语言的基本语法。
条件判定分支:
“if-eq vA, vB, :label_**" 如果vA等于vB则跳转到:label_**
"if-ne vA, vB, :label_**" 如果vA不等于vB则跳转到:label_**
"if-lt vA, vB, :label_**" 如果vA小于vB则跳转到:label_**
"if-ge vA, vB, :label_**" 如果vA大于等于vB则跳转到:label_**
"if-gt vA, vB, :label_**" 如果vA大于vB则跳转到:label_**
"if-le vA, vB, :label_**" 如果vA小于等于vB则跳转到:label_**
"if-eqz vA, :label_**" 如果vA等于0则跳转到:label_**
"if-nez vA, :label_**" 如果vA不等于0则跳转到:label_**
"if-ltz vA, :label_**" 如果vA小于0则跳转到:label_**
"if-gez vA, :label_**" 如果vA大于等于0则跳转到:label_**
"if-gtz vA, :label_**" 如果vA大于0则跳转到:label_**
"if-lez vA, :label_**" 如果vA小于等于0则跳转到:label_**
A,B指数字,**也是指数字
vA,vB代表什么意思不清楚,可以去问问那些修习计算机技术的专业人士。当然,这些只作了解,不懂也没关系,不过最好要记住
.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 调用静态函数