首先还是拿到jadx里面去看一波java代码
(没有Native方法,也就都是java层的验证)
![](https://img.haomeiwen.com/i9548468/4fb8b1619f28f2be.png)
解决问题的处理办法:
打开killer。拖进app,找到
![](https://img.haomeiwen.com/i9548468/c8898f6320d67488.png)
if-eq
const/4 v0,0x1
![](https://img.haomeiwen.com/i9548468/57e600da222a0266.png)
结束 。。。。
稍微多了解一下
因为代码比较少,关联性也不大,干脆就直接cp代码到idea来单步调试分析一波
![](https://img.haomeiwen.com/i9548468/580c4e4304a0d2d0.png)
![](https://img.haomeiwen.com/i9548468/4beab1fd01e51808.png)
![](https://img.haomeiwen.com/i9548468/f7bdd639110714b9.png)
这里遇到一个小坑(使用循环的时候只有第一次运行的结果是正确!
的,后面运行都是错的,挨着打印new class的hash值也不一样,后来仔细排查了一下,发现a和b class 里面使用了static修饰,也就是创建类的时候static修饰的变量只会被创建一次,相当于是你虽然重新创建了类,但是用的临时变量还是原来的零时变量,故出错)
![](https://img.haomeiwen.com/i9548468/4911e357c9ea37e0.png)
另外一个b类同样取消这几个static即可,正常使用该类
然后就搞一个循环,把密码试出来,如下
![](https://img.haomeiwen.com/i9548468/ad1ebcd536a72eb1.png)
综上所述:
解得密码:veniviaivici
全剧终 .................
再补充一下newB的实现
![](https://img.haomeiwen.com/i9548468/5325559c16a090a9.png)
在最后附上apk下载链接(有兴趣的小伙伴可以自己试试):
https://www.lanzous.com/iay0osb
网友评论