【android】Android逆向知识点
2018-07-23 本文已影响14人
当时不是寻常
(1)使用jadx对apk进行编译(也可以用apktool工具)。
![](https://img.haomeiwen.com/i5521037/a0b1948e60e17391.png)
(2)找到mainactivity进行代码的查看。
![](https://img.haomeiwen.com/i5521037/3a3776bbcbac43c3.png)
(3)smail代码不懂,只能一行一行的自己进行查找。但是APK改之理可以直接把smail直接变成java代码,不知道这样做对不对,但是现阶段是非常省事的一个功能。
![](https://img.haomeiwen.com/i5521037/417f83eca12630d1.png)
(4)对smail代码进行分析
1.check函数
![](https://img.haomeiwen.com/i5521037/95db9b11d1f3f6c6.png)
2.数据类型,表示String
![](https://img.haomeiwen.com/i5521037/7e40e35447dd21f8.png)
3.指定了方法内局部变量的个数,这里指定了两个变量
![](https://img.haomeiwen.com/i5521037/7a8ae50429801df3.png)
4.其中p1就是一个寄存器,这里存储的是”name”,.param的意思是指定了寄存器的参数
![](https://img.haomeiwen.com/i5521037/6186e3512b8ccf56.png)
5. .prologue 表示方法中代码开始的地方。
![](https://img.haomeiwen.com/i5521037/dcbab25760a89f5b.png)
6. const/4 v1,0x0的意思就是把0赋值给v1,将数值符号扩展为32
![](https://img.haomeiwen.com/i5521037/d6bf26f19aa9f830.png)
7..line 28 源文件中java指定行数。
![](https://img.haomeiwen.com/i5521037/499c8b252574bf73.png)
8.const-string v0,”hfdcxy”,把字符串赋值给v0
![](https://img.haomeiwen.com/i5521037/18eaed45d8ae286a.png)
9.invoke-virtual{p1,v0} 调用public或protect修饰的方法。
![](https://img.haomeiwen.com/i5521037/147af69a34c9abd7.png)
10.这句代码的意思就是比对两个期存器内的内容,然后结果是一个booleam类型的值。
![](https://img.haomeiwen.com/i5521037/f3ea4e151ea59436.png)
11.将上一个invoke指令的值赋给v0
![](https://img.haomeiwen.com/i5521037/04755dd6491aae9c.png)
12.if-eqz v0,:cond_0,相当于if(a==0)或者if(!a)
![](https://img.haomeiwen.com/i5521037/ad0f9cb833c90807.png)
13.invoke-static 调用实例的静态方法
![](https://img.haomeiwen.com/i5521037/c93c9c9c6ebf0964.png)
(5)对登录进行绕过
1.第一种方法,更改判断条件
![](https://img.haomeiwen.com/i5521037/63ae047038e1694d.png)
在圈圈中的位置把eqz改成nez即可
进行测试。
![](https://img.haomeiwen.com/i5521037/9b195043ebbb4950.png)
2.第二种方法,把相应代码删掉
![](https://img.haomeiwen.com/i5521037/0bc77e09e3c6dbe3.png)
3.第三种发放,使用goto来进行跳转
![](https://img.haomeiwen.com/i5521037/1540a8bb48a7cca4.png)
本文转自https://blog.csdn.net/qq_36869808/article/details/78709531