锁机软件密码分析(一)

前言

都2024年了被锁的人还是不少,所以干脆出一个分析教程吧。该教程是给一些不太懂的人准备的(其实我也不太懂),所以大佬可以不用看,当然捧捧场也是可以的哈哈。能力有限,不喜勿喷

分析准备

工具:

1.mt管理器(自行百度)

2.灵活的小手

3.聪明的脑瓜

开始分析

04f98759d3ce475cbe151afec1adb5d6.png

 这是一个锁机软件,直接点击查看,然后可以看到一个classes.dex文件,点击dex文件,选择dex编辑++,进去之后选择上方的常量并拉到最底,便可以看到如图所示的关键词:密码错误

040be4390cca4b41a6d586d582039ce4.jpg

 然后点击“密码错误”,再点击搜索,便可以看到如图所示的搜索结果

0e727ff28e3245d4a2c420abc1d0aacb.jpg

 点进去可以看到如图所示

05e060d397174cb09e93b269a18f682e.png

 现在网上大部分的锁机在验证密码时都是通过点击诸如“解锁”等按钮来实现的,既然是靠点击按钮,那么应该是用的按钮点击事件,而按钮点击事件在Java里应该表现的是onclick方法。知道了这个我们就先看一下“密码错误”是不是在onclick方法之中。如果用mt管理器就是这么看的

691f787443164490a00db1d30e2331b0.jpg

 可以看到“密码错误”确实是在onclick方法之中,那么目前我们的分析应该是正确的。接下来由于我看不懂smail代码,所以直接转Java分析吧,如图

6a8b89625bc047698873a84dd718b83f.png

 接下来专门分析onclick方法即可,如图

f886642dc2a04bbcb1c691206ab6db9b.jpg

 这里我们只需要分析上半部分的代码就够了。如图所示,该方法中存在一个if判断,大概意思就是:如果我们输入的内容与access$L1000003方法返回的内容相等(equals)那么就执行access$L1000024方法的代码(这里不作深入分析了)。理解了代码的逻辑我们就先跳转到access$L1000003方法看看。如图找到该方法的调用并跳转

5a17605515b94870813dcf181b51e6f4.jpg

 跳转后还是转Java分析,就可以得到

0d9f52c174784441ab86650c5778fad6.jpg

 

可以看到,access$L1000003方法返回的是一个名为pW的量的值,于是我们就在这个类中找一下pW这个量在哪被赋值了。可以搜索也可以慢慢往下找。如图

8d306bc3e40a44a4b9eff9dd88aee7ac.jpg

 如图所示,在k方法中pW被进行了赋值操作,具体是由b这个变量的整数值乘以4015得到的新的整数值赋给pW,即得到解锁密码

以上就是全部的密码分析的思路及过程了,我能力有限,有很多地方讲的不好,也没有讲全讲完整甚至可能还有讲错的地方,还望各位海涵啊。如果有更好的思路或者我哪里讲的有问题和不懂的地方,请及时指出,谢谢大家

结语

不出意外的话应该是会有第二节的分析,因为还有很多东西都没分析到位,比如access$L1000024之后又是什么。这些内容等第二节分析吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值