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

一般的Android手机的锁定界面由九个点构成,设定图案需满足三个要求:

  • 至少四个点;
  • 最多九个点;
  • 无重复点。

这种看似复杂的解锁方式在 Android 存储时使用的是明文转换后采用散列方式存储。Android 设备图案锁定的加密存储过程:

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

输入上图一样的图案(看上去是个“2”,使用了九个点。)

第二步:明文加密。

这一步是系统自动完成的,首先是九个点的数据含义,含义是这样的:从左上角起编号为 00,至右下角止编号为 08。那么上图中“2”的编码应该是000102050403060708。使用SHA1算法对上述十六进制编码进行计算后得到密文“333d9f31c209ce1217bc165c5baa7307b06bbf87”。这一步系统会自动将图案转换成编码,在将编码算出密文的。因此我们是看不到的。

第三步:密文存储。

计算好密文后,系统会将密文存储在/DATA/SYSTEM/GESTURE.KEY文件中,我们可以使用“adb pull /data/system/gesture.key gesture.key”将这个密码文件系在到本地,得到密码文件后,用记事本打开是乱码的,要用十六进制编辑器打开才可以看到密文。

可以看到密文和上一步我们计算出来的是一样的。
对上面算法总结一下规律。从密码明文的编码来看,各单数位数字为零,双数位数字不重复地排列,并将这个排列进行单次SHA1运算。那么也就是说,通过数学计算可知,由于单数位确定,双数位不重复,则根据 Android 图案锁定规则可以设置的锁定图案总数是固定的,4个数的密码个数为9*8*7*6=3024。5个数的密码个数为15120个。6个数的密码个数为60480个。7个数的密码个数为181440个。8个数和9个数的密码个数都是36288个。也就是说一共密码的可能个数为985824个。由于密码复杂程度不高,破解相对容易。只要做一个字典进行暴力猜解就可以将正确密码解出来且速度很快。生成的字典50多m,暴力破解速度基本是秒破的。

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

转自:https://bbs.pediy.com/thread-166933.htm

【移动安全实战篇】————5、Android屏幕解锁图案破解相关推荐

  1. Android屏幕解锁图案破解

    标 题: [原创]Android屏幕解锁图案破解 作 者: gamehacker 时 间: 2013-03-27,14:29:58 链 接: http://bbs.pediy.com/showthre ...

  2. android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!

    当你的安卓手机密码锁忘记了怎么办?今天一不小心把手机改了图案锁结果由于改的时候匆忙结果忘记了,在网上找了好多方法都无果,也有人说重新刷机就会好!!这个简直就是废话,刷机当然能好了!! 关键是解锁要解决 ...

  3. 计算Android屏幕解锁组合数

    计算Android屏幕解锁组合数 晚饭时和同事聊到安卓屏幕解锁时会有多少种解锁方案,觉得很有趣,吃完饭开始想办法解题,花了大概2个小时解决.思路如下: 使用索引值0-9表示从左到右.从上到下的9个点, ...

  4. android屏幕解锁新思路

    最近接了个私活,涉及到屏幕解锁,由于从来没接触过这块方面的知识,网上找了很多相关的内容,基本上都是以 private PowerManager.WakeLock wl; private Keyguar ...

  5. android屏幕解锁新解

    最近因为一些事接触到android屏幕解锁这块,刚开始查询网上资料,绝大部分以keyguardLock 来进行获取屏幕锁和接触屏幕锁,其思路如下: // KeyguardManager keyguar ...

  6. Android屏幕解锁和点亮

    有些场景需要程序自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: 1.//得到键盘锁管理器对象 2.KeyguardManager  km= (KeyguardManager) ...

  7. 仿写Android屏幕解锁小应用

    近日需要设置密码并加密,因此仿写了Android的位置和安全设置有更改屏幕锁定的设置.先看效果图: 点击后,第一次是可设置密码. 设置成功密码后再点Button按钮将会出现: 由于时间紧,因此只研究了 ...

  8. 智能手机屏幕解锁图案研究

    1   2   3 4   5   6 7   8   9 智能手机屏幕上的9个点依次记为1~9 using System; using System.Collections.Generic; usi ...

  9. Android点亮屏幕或屏幕解锁和锁定

    1.Android屏幕常亮/点亮 //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); ...

最新文章

  1. 【转】 ubuntu12.04更新源
  2. Colocation Guard公司再增1万平方英尺的数据中心空间
  3. 2021年春季学期-信号与系统-第四次作业参考答案-第十小题
  4. ipython notebook使用
  5. net user命令详解
  6. Restrictions查询用法
  7. css 块元素、内联元素、内联块元素
  8. 美团酒旅起源数据治理平台的建设与实践
  9. Docker-基本概念(镜像和容器)
  10. 带透明png转换成c数组
  11. 嵌入式linux增加root权限,Ubuntu12.04 添加新用户并增加管理员权限
  12. sev2008服务器系统,在windows 2008 64位系统安装sql server 2000
  13. sop流程图模板_SOP模板-标准操作流程编写程序
  14. 计算机网络电缆是什么,很多人不知道,计算机电缆和光缆有什么区别
  15. 实战:用 C 语言实现操作系统
  16. 2022卡塔尔世界杯赛程直播北京时间_足球世界杯对阵表图完整全部
  17. 手机打字测速软件简版
  18. [leetcode]Unique Paths II
  19. 记录我在华为的经历----阿冬专栏
  20. MyBatis-Plus的条件查询(只举例部分方便使用)

热门文章

  1. VB.NET实现DirectSound9 (7) 录音
  2. 基于Python+Django的项目申报审核平台系统
  3. 建立DbLink 时报ORA-01017/ORA-02063分析及解决
  4. 引用请注明出处和转载请注明出处?我的看法
  5. 独家3.1.2版本独立微信社群人脉系统社群空间站最新源开码源+详细教程
  6. Leetcode Weekly 188 解题报告
  7. java+springboot+mysql个人理财管理系统
  8. 简易QQ聊天代码及分析
  9. 《计算机应用基础》在线作业一
  10. 有鹿生活2021年电商行业年度报告