绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁),本文通过数据整理汇集了绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁)相关信息,下面一起看看。

先决条件:手机需要root,调试模式开启。一般来说,如果你用过诸如豌豆荚手机助手和360手机助手,您将被要求打开调试模式。如果要删除手机内置软件,需要root手机。

原理分析

首先,了解一下安卓手机是如何标注这9点的。通过阅读Android系统的源代码,我们可以知道每个点都有它的编号,形成一个33的矩阵,看起来是这样的:

00 01 02

03 04 05

06 07 08

如果解锁图形设置为L 形状,如图所示:

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

用WinHex等十六进制编辑程序打开gesture.key,会在文件中找到SHA1加密的字符串:c 8 c 0 b 24 a 15 DC 8 bbfd 411427973574695230458 f 0,如图:

下次解锁时,系统会对比你画的图案,看对应的数字串是不是0003060708对应的加密结果。如果是,解锁;相反,保持锁定。那么,如果把所有的数字串穷举排列,会有多少个呢?想想高中的阶乘。如果用四个点作为解锁图形,就是9x8x7x6=3024种可能。那五个点是15120,如果六个点是60480,七个点是181440,八个点是362880,九个点是362880。总共有985,824种可能(但这种计算并不严谨,因为同一条线上的点只能与其邻点相连)。

最多只有不到985,824种可能性。乍一看很大,但是在电脑面前,列举这些东西只需要几秒钟。

裂化法

知道了原理,让让我们从一个手写程序开始实现它。这里使用Python来完成任务。主要应用hashlib模块(字符串的SHA1加密)和itertools模块(Python内置,生成00-09的排列组合)。

主要过程是:

1.ADB连接到移动电话以获取手势密钥文件。

2.读取密钥文件并存储字符串str _ a。

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

4.加密这些数字字符串,得到字符串str _ b。

5.比较字符串str_A和str _ b。

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

7.打印出数字字符串num。

以下是程序:

摘要

从程序本身来说,得到解锁密码后,要用break跳出循环,终止程序。然而,Python没有t跳出多重循环s声明。如果要跳出多重循环,只能设置标志位,继续做决定。跳出循环为了运行速度,省略了。有没有更好的方法走出多重循环?)另外省略了很多容错语句。

为了破解,如果你只是忘记了你的手机密码的图形锁,可以用更简单的方法:ADB连接你的手机,然后ADB RM/data/system/gesture . key ;删除笔势文件。这时候图形锁就失效了,你可以随意画来解锁。但是本文开头的假设是进入其他人s手机未被发现,于是有了这篇文章。

最后一个安全建议:如果你的手机是root,需要使用XX手机助手。如果你想设置图形锁,3354有一个取消锁定状态下的USB调试模式在手机设置选项中(此名称因手机而异,有的手机有此选项,有的则没有t)。开启该功能后,可以在手机锁定时防止此类攻击。这篇文章的技术原理很简单,希望能教你一些高级的Python编程技巧。

更多绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁)相关信息请关注本站。