本帖最后由 happy3star 于 2013-4-5 11:32 编辑
android的锁屏密码大家应该都不陌生,本文所讲的即是对此密码的破解方法。 适合平台:android 所需条件:已root,打开USB调试。 意义:几乎没用。 android的锁屏密码是连接一个3*3个点的图上面的点,要求如下: 至少4个点; 最多9个点; 无重复。 实际上,android系统将这9个点分别对应于0-8这9个数字,然后将连接的路径转换为这9个数字,并对其进行SHA1加密然后存储于一个文件中。数字对应如下: 0 1 2 3 4 5 6 7 8 比如一个大Z字型的密码,就是0124678,然后将这几个数字作为一个进行SHA1运算,再以16进制的形式存入/data/system/gesture.key文件当中。 破解方法1: 因为没有设置该密码手机将不会有这个文件的,而且如果没有这个文件,也不会要求输入锁屏密码。 所以方法很简单:adb连接上手机,删除/data/system/gesture.key文件。如下图:
破解方法2: 如果不想删除该文件,只是想知道密码的话,则可以读取该文件的数字,然后用暴力破解的方式进行猜解。由于密码是4至9位长度的数字(0-8),并且没有重复,再去除像0213这种不合法的密码(先连了首尾两个再连中间的点,这样的密码不可能存在。像路径为0213或0842等),生成密码词典并进行猜解,在电脑上几乎是秒破的。
该文件直接打开是乱码的,需要以16进制来查看。如下图:
以16进制读取该文件并转成字符串,然后生成由0至8组成的4至8位的数组,进行SHA1加密运算,并与上面的字符串对比。下面是我用电脑进行暴力猜解所生成的密码个数,以及最坏情况下所用时间:
共耗时0.975254947秒 复制代码 上面的密码个数不一定是最优解的个数,但应该没有漏了。破解android上这样一个锁屏密码,在我的G47(I5 CPU)电脑上所用时间约1秒。 在我的手机上进行破解的时间有点长,如下图是最坏情况下的破解结果:
由于猜解密码需要root权限,并且打开Adb调试,所以实际上此功能并没有多大用处,最多就是我借做android开发的朋友的手机(他们的都ROOT过并打开了USB调试)来看看他们的密码是什么,当然为能还需要他们先解锁下= =!。所以此文仅为技术交流。
原文转自:枫叶博客www.fengye123.com
|