【移动安全实战篇】————5、Android屏幕解锁图案破解
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屏幕解锁图案破解相关推荐
- Android屏幕解锁图案破解
标 题: [原创]Android屏幕解锁图案破解 作 者: gamehacker 时 间: 2013-03-27,14:29:58 链 接: http://bbs.pediy.com/showthre ...
- android屏幕解锁图案,安卓手机图案屏幕锁解锁方法!!
当你的安卓手机密码锁忘记了怎么办?今天一不小心把手机改了图案锁结果由于改的时候匆忙结果忘记了,在网上找了好多方法都无果,也有人说重新刷机就会好!!这个简直就是废话,刷机当然能好了!! 关键是解锁要解决 ...
- 计算Android屏幕解锁组合数
计算Android屏幕解锁组合数 晚饭时和同事聊到安卓屏幕解锁时会有多少种解锁方案,觉得很有趣,吃完饭开始想办法解题,花了大概2个小时解决.思路如下: 使用索引值0-9表示从左到右.从上到下的9个点, ...
- android屏幕解锁新思路
最近接了个私活,涉及到屏幕解锁,由于从来没接触过这块方面的知识,网上找了很多相关的内容,基本上都是以 private PowerManager.WakeLock wl; private Keyguar ...
- android屏幕解锁新解
最近因为一些事接触到android屏幕解锁这块,刚开始查询网上资料,绝大部分以keyguardLock 来进行获取屏幕锁和接触屏幕锁,其思路如下: // KeyguardManager keyguar ...
- Android屏幕解锁和点亮
有些场景需要程序自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: 1.//得到键盘锁管理器对象 2.KeyguardManager km= (KeyguardManager) ...
- 仿写Android屏幕解锁小应用
近日需要设置密码并加密,因此仿写了Android的位置和安全设置有更改屏幕锁定的设置.先看效果图: 点击后,第一次是可设置密码. 设置成功密码后再点Button按钮将会出现: 由于时间紧,因此只研究了 ...
- 智能手机屏幕解锁图案研究
1 2 3 4 5 6 7 8 9 智能手机屏幕上的9个点依次记为1~9 using System; using System.Collections.Generic; usi ...
- Android点亮屏幕或屏幕解锁和锁定
1.Android屏幕常亮/点亮 //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); ...
最新文章
- 【转】 ubuntu12.04更新源
- Colocation Guard公司再增1万平方英尺的数据中心空间
- 2021年春季学期-信号与系统-第四次作业参考答案-第十小题
- ipython notebook使用
- net user命令详解
- Restrictions查询用法
- css 块元素、内联元素、内联块元素
- 美团酒旅起源数据治理平台的建设与实践
- Docker-基本概念(镜像和容器)
- 带透明png转换成c数组
- 嵌入式linux增加root权限,Ubuntu12.04 添加新用户并增加管理员权限
- sev2008服务器系统,在windows 2008 64位系统安装sql server 2000
- sop流程图模板_SOP模板-标准操作流程编写程序
- 计算机网络电缆是什么,很多人不知道,计算机电缆和光缆有什么区别
- 实战:用 C 语言实现操作系统
- 2022卡塔尔世界杯赛程直播北京时间_足球世界杯对阵表图完整全部
- 手机打字测速软件简版
- [leetcode]Unique Paths II
- 记录我在华为的经历----阿冬专栏
- MyBatis-Plus的条件查询(只举例部分方便使用)
热门文章
- VB.NET实现DirectSound9 (7) 录音
- 基于Python+Django的项目申报审核平台系统
- 建立DbLink 时报ORA-01017/ORA-02063分析及解决
- 引用请注明出处和转载请注明出处?我的看法
- 独家3.1.2版本独立微信社群人脉系统社群空间站最新源开码源+详细教程
- Leetcode Weekly 188 解题报告
- java+springboot+mysql个人理财管理系统
- 简易QQ聊天代码及分析
- 《计算机应用基础》在线作业一
- 有鹿生活2021年电商行业年度报告