破解图案锁的方法,千万不要做坏事呦!

2023-12-27
来源:网络整理

今天我们介绍另一种破解图案锁的方法。 但首先我要提醒大家,不要做坏事!

1. 前提条件

手机需要root并打开调试模式。 一般来说,如果您使用过“豌豆家手机助手”、“360手机助手”等软件,都会要求您打开调试模式。 如果您想删除手机内置软件,则需要对手机进行root。 对于关心root的孩子,可以看看这篇文章《我们应该如何对待root?》

2、原理分析

首先我们来科普一下手机是如何标注这9点的。 通过阅读系统的源码,我们可以看到每个点都有其对应的数字,形成一个3×3的矩阵,形状如下:

00 01 02

03 04 05

06 07 08

如果解锁图形设置为“L”形,如图:

那么这些点的顺序如下:00 03 06 07 08。系统记下这串数字,然后对这串数字进行SHA1加密(十六进制格式)并存储在/data//.key中手机上的文件。 我们用数据线连接手机和电脑,然后ADB连接手机,下载文件到电脑(命令:adb pull /data//.key .key),如图:

用十六进制编辑程序打开.key,你会发现该文件包含一个SHA1加密的字符串:

,如图:

当您下次解锁时,系统会比对您绘制的图案,看对应的数字串是否是对应的加密结果。 如果是,则解锁; 如果没有,请将其锁定。 那么,如果你穷尽所有的数字串排列,会有多少个呢? 让人想起高中的阶乘,如果用4点作为解锁图案,那就=3024种可能性,那么就是5点,如果是6点、7点、8点、9点。 总体来说是有可能的(但是这个计算并不严格,因为同一条直线上的点只能与其相邻的点相连)。 即使进行了所有的计算,也没有任何可能。 乍一看似乎很大,但在电脑面前,枚举这些东西只需要几秒钟。

3、破解过程

了解了原理后,就开始编写程序来实现它。 此处用于完成任务。 主要用到的是模块(字符串的SHA1加密)和模块(内置,生成00-09的排列组合)。 主要流程为:

1. ADB连接手机并获取.key文件

2.读取密钥文件并存储字符串

3. 生成所有可能的数字串

4、对这些数字串进行加密,得到字符串

5. 将字符串与

6. 如果字符串A和B相同,则表示数字字符串num是所需的解锁序列。

7. 打印出数字串num

以下是程序:

4. 总结

从程序本身来看,获得解锁密码后,应该跳出循环并终止程序。 但没有跳出多个循环的语句。 如果想跳出多个循环,只能设置标志位,然后继续判断。 为了运行速度,省略了“跳出循环”这一步。 (有没有更好的方法跳出多个循环?)另外,还省略了很多容错语句。

为了破解的目的,如果你只是忘记了手机的图形锁密码,可以使用更简单的方法:将手机与ADB连接,然后用“adb rm /data//.key”删除.key文件。 这时,图形锁就会失效,只需绘制即可解锁。 这在《手机忘记锁怎么办》一文中已有介绍。

最后一点安全建议:如果你的手机已经root了,你还是需要使用“XX手机助手”,而且你还要设置图形锁——在你手机的“设置”选项里,有一个“取消”锁定状态下的USB调试模式”(这个名称因手机而异,有的有这个选项,有的没有)。 开启此功能后,您可以在手机锁定的情况下防止此类攻击。

分享