绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁)
绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁),本文通过数据整理汇集了绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁)相关信息,下面一起看看。
先决条件:手机需要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编程技巧。
更多绘制图案解锁忘了怎么办(图案解锁密码忘记了怎么解锁)相关信息请关注本站。