因为是简单的学习过程,所以这里直接进行逆向,就不进行android代码的演示了。apk是直接借用了被人写好的app来进行学习的。
一、使用APK改之理对apk进行编译。
二、找到mainactivity进行代码的查看。
三、smail代码不懂,只能一行一行的自己进行查找。但是APK改之理可以直接把smail直接变成java代码,不知道这样做对不对,但是现阶段是非常省事的一个功能。
四、对smail代码进行分析
1.check函数
2.数据类型,表示String
3.指定了方法内局部变量的个数,这里指定了两个变量
4.其中p1就是一个寄存器,这里存储的是”name”,.param的意思是指定了寄存器的参数
5. .prologue 表示方法中代码开始的地方。
6. const/4 v1,0x0的意思就是把0赋值给v1,将数值符号扩展为32
7..line 28 源文件中java指定行数。
8.const-string v0,”hfdcxy”,把字符串赋值给v0
9.invoke-virtual{p1,v0} 调用public或protect修饰的方法。
10.这句代码的意思就是比对两个期存器内的内容,然后结果是一个booleam类型的值。
11.将上一个invoke指令的值赋给v0
12.if-eqz v0,:cond_0,相当于if(a==0)或者if(!a)
13.invoke-static 调用实例的静态方法
五、对登录进行绕过
1.第一种方法,更改判断条件
在圈圈中的位置把eqz改成nez即可
进行测试。
2.第二种方法,把相应代码删掉
3.第三种发放,使用goto来进行跳转 |