标 题:【原创】Android屏幕解锁图案破解
作 者:gamehacker
时 间:2013-03-27,14:29:58
链 接:http://bbs.pediy.com/showthread.php?t=166933

题目:Android屏幕解锁图案破解
  Android手机上有一个屏幕解锁的应用相信大家都不陌生,在Android设备上,用户可以通过设置锁定图案作为密码对设备用户界面进行锁定,锁定界面如下图所示。


  一般的Android手机的锁定界面由九个点构成,设定图案需满足三个要求:
  至少四个点;
  最多九个点;
  无重复点。
  这种看似复杂的解锁方式在Android存储时使用的是明文转换后采用散列方式存储。Android设备图案锁定的加密存储过程:

  
  下面设置一个图形加密锁测试一下:
  第一步:图形输入。

  输入上图一样的图案(看上去是个“2”,使用了九个点。)
  第二步:明文加密。
  这一步是系统自动完成的,首先是九个点的数据含义,含义是这样的:从左上角起编号为00,至右下角止编号为08。那么上图中“2”的编码应该是000102050403060708。使用SHA1算法对上述十六进制编码进行计算后得到密文“333d9f31c209ce1217bc165c5baa7307b06bbf87”。这一步系统会自动将图案转换成编码,在将编码算出密文的。因此我们是看不到的。
  第三步:密文存储。
  计算好密文后,系统会将密文存储在/DATA/SYSTEM/GESTURE.KEY文件中,我们可以使用“adbpull/data/system/gesture.keygesture.key”将这个密码文件系在到本地,得到密码文件后,用记事本打开是乱码的,要用十六进制编辑器打开才可以看到密文。
  
  可以看到密文和上一步我们计算出来的是一样的。
  对上面算法总结一下规律。从密码明文的编码来看,各单数位数字为零,双数位数字不重复地排列,并将这个排列进行单次SHA1运算。那么也就是说,通过数学计算可知,由于单数位确定,双数位不重复,则根据Android图案锁定规则可以设置的锁定图案总数是固定的,4个数的密码个数为9*8*7*6=3024。5个数的密码个数为15120个。6个数的密码个数为60480个。7个数的密码个数为181440个。8个数和9个数的密码个数都是36288个。也就是说一共密码的可能个数为985824个。由于密码复杂程度不高,破解相对容易。只要做一个字典进行暴力猜解就可以将正确密码解出来且速度很快。生成的字典50多m,暴力破解速度基本是秒破的。

  当然如果只是为了搞定这个密码,还有更简单的方法,就是直接adbshell到设备上,然后执行“rm/data/system/gesture.key”命令将密码文件删掉就可以了,删除后相当于没有设备图案锁。
  破解android屏幕解锁图案就是这么简单,希望大家喜欢。

更多相关文章

  1. android 横竖屏锁定
  2. Android锁定横竖屏、splash,全屏、去除标题的方法-网摘
  3. android 屏幕方向切换 锁定方向
  4. 横竖屏切换时不销毁当前activity 和 锁定屏幕
  5. android ListView 示例1 entries 指定一个数组资源
  6. Android(安卓)横竖屏幕
  7. 随笔--android上遇到的易忽视的区别
  8. Android(安卓)禁止横竖屏切换
  9. 开发可统计单词个数的Android驱动程序(1)

随机推荐

  1. android 模拟器中启用相机API支持
  2. android 来电自动接听和自动挂断
  3. 1、Android中支持的Snesor种类
  4. android 实用sax 读取xml文件内容
  5. Android(安卓)中如何得到字符的像素宽度
  6. android 开机动画修改以及默认壁纸
  7. Android问题集锦
  8. Android状态栏适配源码解析。
  9. Android调用getSimSerialNumber获取iccid
  10. 2013.03.19(7)———android scrollview和l