前言
都2024年了被锁的人还是不少,所以干脆出一个分析教程吧。该教程是给一些不太懂的人准备的(其实我也不太懂),所以大佬可以不用看,当然捧捧场也是可以的哈哈。能力有限,不喜勿喷
分析准备
工具:
1.mt管理器(自行百度)
2.灵活的小手
3.聪明的脑瓜
开始分析
这是一个锁机软件,直接点击查看,然后可以看到一个classes.dex文件,点击dex文件,选择dex编辑++,进去之后选择上方的常量并拉到最底,便可以看到如图所示的关键词:密码错误
然后点击“密码错误”,再点击搜索,便可以看到如图所示的搜索结果
点进去可以看到如图所示
现在网上大部分的锁机在验证密码时都是通过点击诸如“解锁”等按钮来实现的,既然是靠点击按钮,那么应该是用的按钮点击事件,而按钮点击事件在Java里应该表现的是onclick方法。知道了这个我们就先看一下“密码错误”是不是在onclick方法之中。如果用mt管理器就是这么看的
可以看到“密码错误”确实是在onclick方法之中,那么目前我们的分析应该是正确的。接下来由于我看不懂smail代码,所以直接转Java分析吧,如图
接下来专门分析onclick方法即可,如图
这里我们只需要分析上半部分的代码就够了。如图所示,该方法中存在一个if判断,大概意思就是:如果我们输入的内容与access$L1000003方法返回的内容相等(equals)那么就执行access$L1000024方法的代码(这里不作深入分析了)。理解了代码的逻辑我们就先跳转到access$L1000003方法看看。如图找到该方法的调用并跳转
跳转后还是转Java分析,就可以得到
可以看到,access$L1000003方法返回的是一个名为pW的量的值,于是我们就在这个类中找一下pW这个量在哪被赋值了。可以搜索也可以慢慢往下找。如图
如图所示,在k方法中pW被进行了赋值操作,具体是由b这个变量的整数值乘以4015得到的新的整数值赋给pW,即得到解锁密码
以上就是全部的密码分析的思路及过程了,我能力有限,有很多地方讲的不好,也没有讲全讲完整甚至可能还有讲错的地方,还望各位海涵啊。如果有更好的思路或者我哪里讲的有问题和不懂的地方,请及时指出,谢谢大家
结语
不出意外的话应该是会有第二节的分析,因为还有很多东西都没分析到位,比如access$L1000024之后又是什么。这些内容等第二节分析吧。