设为首页 | 加入收藏

  

支付宝钱包手势密码破解实战(root过的手机可直接绕过手势密码)

发布日期:2019-08-21 08:13   来源:未知   阅读:

  11月21日,大河报·大河客户端记者从三门峡市公安局了解到,为规范城市公共区域范围内停车,创造有序的交通环境,三门峡市公安局决定自即日起在三门峡市区开展公共区域规范停车集中整治。

  在全面深化改革,扩大对外开放的今天,山东如何推动体制机制活力不断迸发、推动高质量发展?

  王红旗:然而集中讲述爱情婚姻刻骨铭心记忆的,还是那部2000年出版的《情证今生》。如果说《绝对隐私》《回家》都是讲述的当下,而《情证今生》是当下与历史的结合,不仅有年轻恋情的单纯与真诚,有恩爱夫妻相濡以沫的悲欢,还有知天命的女人对自己和母亲情感世界的回忆,把中国人丰富情感记录一下拉回到20世纪的前半叶。而且情真意切,感人至深。曾有批评家和读者质疑其真实性。当初您为什么要选择这样的人群来采访?是否想借此来抵御当时“中国人紊乱的情感世界”?您对爱情天生“命短”如何解释?

  王红旗:那时读《绝对隐私》,第一感觉到的是您的勇气。在向往人性自由的狂欢中,短命的爱与性成为时尚前沿的新宠,但是遭遇爱情破碎、婚姻破碎、家庭破碎、灵魂破碎,甚至是文化破碎,身心承受着血淋淋疼痛的人们,在经历着自我生存方式的多种选择、对外来文化的仰视、对金钱欲望的崇拜,产生的“准绳”断裂后的困惑、痛苦与挣扎,真假是非丑恶难辨,而您能鼓足勇气,大胆表现这个纷乱迷离的“正在进行时”,反映伦理道德与社会现实行为的激烈冲突,人性的颤栗与滑落,人对生命尊严的彷徨与坚守。这种人文关怀的底色,标示出您的极大自信,内心的清醒。而且,在这一个个悲剧生命的故事背后都站立着一个活生生的真实原型,成为一个时期社会文化意识的缩影。作为一名年轻记者,当时支撑您勇敢前行的力量是社会责任与梦想吗?能否重温一下您认为《绝对隐私》里对女性情感影响比较大的故事? 您如何看待那时的所谓“性解放” ?

  帽筒上部靠近口沿处,用墨彩写有:“五桂腾芳戊午之夏月庆云斋写”。墨彩色泽有些脱落。关于这句话的解释:“五桂”,旧称进士登第为折桂,五桂,是对亲族五人相继登科的美称;“芳”,比喻美名、美德、美声,也比喻子孙显贵发达。明代程登吉《幼学琼林》第二卷:“父母俱存,谓之椿萱并茂;子孙发达,谓之兰桂腾芳。”清代程允升《幼学故事琼林·祖孙父子》:“子孙发达,谓之兰桂腾芳。” 综上可知,“五桂腾芳”一是比喻子孙兴旺,二是比喻子孙相继登科。“戊午年夏月”指的是1918年的夏天。“庆云斋写”即马庆云作之意。在帽筒墨彩字迹落款处,手绘一枚红色小印章,印文似“马”字。

  正所谓树大招风,移动支付平台的兴起,也给众多一直徘徊在网络阴暗地带的黑客们又一次重生的机会。因为移动平台刚刚兴起,人们对移动平台的安全认识度还不够。就拿我身边的很多朋友来说,他们一买来手机就开始root,之后卸载预装软件,下载游戏外挂等等。今天,我们就以破解支付宝钱包的手势密码为例,来深入了解下android系统上的一些安全知识,希望能引起人们对移动平台安全的重视。

  在此申明:以下文章涉及的代码与分析内容仅供android系统安全知识的学习和交流使用,任何个人或组织不得使用文中提到的技术和代码做违法犯罪活动,否则由此引发的任何后果与法律责任本人概不负责。

  安装完支付宝钱包之后,运行软件,我这里选择淘宝帐号登录,界面如图1所示。

  完成上述两步之后,退出支付宝进程。用腾讯应用宝定位到的安装目录\data\data\com.eg.android.AlipayGphone,查看目录结构如图3所示。

  看到图3所示的目录结构,猜测databases目录下的*.dB数据库文件就是用来保存上述我们设置的密码的。因此,我们使用应用宝的导出功能将databases目录导出到本地。用SQLite Expert工具打开所有的dB文件,分析发现alipayclient.db数据库中的userinfo表中保存了用户名、输入错误次数、手势密码等详细信息,如图4所示。其中的gestureErrorNum字段应该就是保存了手势密码输入错误的次数了,很明显这里已经被加密了。

  使用APK IDE对支付宝的安装包进行解包分析。解包完成之后,搜索setgestureErrorNum字样,结果如图5所示。

  经过大致分析,UserInfoDao.smali文件中的addUserInfo函数比较可疑,截取其中一段设置手势密码错误次数的代码如下:

  #调用getGestureErrorNum函数获得未加密的错误次数,并保存到v1寄存器

  #以user id的前8字节作为key,调用des加密错误次数字符串,并保存到v1寄存器

  通过对上述代码的分析得知,第一次getGestureErrorNum的调用取出的错误次数应该是未加密的字符串,添加log代码验证,如图6所示。

  保存修改的smali文件,重新编译打包,安装完成之后,输入错误的手势密码,log输出数字依次递增。最后一次输入正确的手势密码,错误次数重新归0。LogCat捕捉到的日志如图7所示。

  程序分析到这里,我不禁猜测,在错误次数未加密前,把v1寄存器的值设置为字符串“0”是不是就可以骗过支付宝而可以无限次的输入手势密码了呢?于是乎,我又开始了下面的验证,代码如图8所示。

  编译打包,重新安装支付宝,输入错误的手势密码,发现5次错误之后程序还是让我们重新登录。看来我们这里设置错误次数已经晚了,于是乎,继续搜索调用addUserInfo函数来加密gestureErrorNum的地方。其中,AlipayPattern.smali文件的settingGestureError函数引起了我的注意。函数代码如下:

  分析到这里,想必这里才是最原始的设置手势输入错误次数的地方吧,修改p3的值为0,测试代码如图9所示。

  继续打包、编译、测试。随意输入错误的手势密码,支付宝始终显示“密码错误,还可以输入5次”字样,如图10。

  至此,手势密码中的错误次数限制已经被我们解除了。理论上来说,我们可以使用穷举法来获取支付宝的手势密码。但是,作为一名分分钟几百万上下的大黑阔来说,使用穷举法来获得密码这种方式,显然是在浪费生命和金钱呀。

  对于大黑阔们来说,只破解手势输入错误次数限制显然是不够的。下面我们以手势密码的存储展开来说起。查看alipayclient.db数据库的userinfo表可知,手势密码的存储字段为gesturePwd,搜索getGesturePwd函数得到如图11的结果。

  搜索到的结果比较多,根据前面对手势密码错误次数限制的分析,这里可以排除几个文件,例如UserInfoDao.文件,它主要用来保存一些用户态的信息,可暂时跳过。剩下的smali文件,我们一个个分析过来。在这里我想说的一点是,逆向分析确实是很考验一个人耐心和细心的一件事情,一个恍惚就会迷失在浩瀚的汇编代码中,但是等到你找到关键的调用点,分析出核心的算法时,那么心境会豁然开朗,真是有种踏破铁鞋无觅处,得来全不费工夫的感脚。好了,扯远了,下面我们继续。

  经过我的仔细分析,e.smali文件最有可能是比较输入密码的地方,双击上面文件的LINE 47行,跳转到的是a函数。由于函数比较长,只贴关键部分,代码如下:

  #StringBuilder对象(输入明文手势的密码 + 加密后的user id)转字符串,并赋值给v0寄存器

  很显然,上面这个if-eqz是关键,如果比较函数equals返回false,那么跳转到cond_1标签处。cond_1标签处的主要任务就是取当前输入错误的次数,在这个基础上加上1,然后调用settingGestureError函数重新设置错误次数。如果两个字符串相等,那么调用settingGestureError函数把错误次数重新置为0。

  1、在a函数中加入类似如图12的打印日志代码,这里未全部截图下来,其他地方留给读者自行添加。

  完成上述两步操作之后,保存修改过的smali文件,编译打包,重新安装支付宝钱包客户端,随意输入手势密码。这里引用大魔术师刘谦的一句话,“接下来就是见证奇迹的时刻”。在我们随意输入密码之后,熟悉的支付宝主界面出现在我们眼前,同时LogCat输出日志如图14所示。

  1、真实的手势密码和我们输入的密码是不一样的,但是我们还是进入了支付宝的主界面,证明我们上面第2步中修改的地方非常关键,从而也印证了e.smali文件的a函数确实是比较用户输入和真实密码的关键函数。

  2、支付宝是将用户的手势操作转化成对应的数字,然后再做一定的加密处理之后保存到数据库中。比较用户输入的时候,是用相同的加密步骤对用户输入进行加密,再与数据库中保存的密码做比较。数字代码对应如图15所示。

  程序分析到这里,我们已经清楚的明白了支付宝手势密码的加密过程和算法,并且通过修改关键跳转的方法,使得我们随意输入手势密码都可以进入支付宝主界面。

  回过头来仔细想想,手势密码的加密流程是这样的,用户输入+user id组成一个字符串,将该字符串经过sha1算法哈希之后得到另一个加密字符串即为手势密码。其中,user id字符串在alipayclient.db数据库的userinfo表中的userId字段已经表明了,正确的手势密码gesturePwd字段也已经有了。虽然sha1算法不可逆,但是在我们的这个实例中,最长输入是9位,最短为4位,我们完全可以通过已知的信息,采用有限的穷举,就能得出正确的手势代码了。相信对于现在的4核乃至8核cpu手机来说,这点计算应该是很轻松的。

  但是,我们难道只能通过穷举来实现暴力破解吗?答案是否定的。其实我们完全可以自己构造一个输入,例如0123,采用和支付宝完全相同的加密流程得到手势密码。然后,通过修改userinfo表的gesturePwd字段内容为上面我们计算出来的手势密码,这样,就能实现随意修改手势密码的目的了。想法有了,下面我们编写代码来验证该方法是否可行。

  查看支付宝使用的sha1算法可知,该算法与支付宝的整体功能业务耦合度基本为0,于是我将sha1算法所在的smali文件转换成jar包,然后导入到我的工程中,这样,就可以直接调用和支付宝完全相同的sha1算法了。程序代码如下所示:

  输入自定义密码,点击确认,程序提示设置成功。此时,打开支付宝,输入我们的自定义手势代码即可解锁支付宝进入熟悉的主界面了。

  如上所述,通过修改支付宝钱包数据库来达到破解目的的方法是需要在已经root过的手机上才能使用的。设想一下这种情况,我的手机已经root,并且手机被盗。那么,除了手机上的艳照有可能泄露之外,小偷还可以通过修改支付宝的手势密码来登录我的支付宝,因此,造成直接的金钱损失也不是没有可能。

  一般来说,普通用户日常使用的手机尽量不要去root,也不要随便去下载来历不明的软件和外挂。

  近日,国内著名信息安全反馈平台“乌云”曝出了一个支付宝的登录漏洞。您先别慌,阿里巴巴官方称,这个漏洞当天已被修复,并未造成用户财产损失。存余额宝的你,知道这事吗?这漏洞究竟是啥情况?到底对火爆的余额宝...博文来自:Cesar Wu

  转载:支付宝后台不死的黑科技微信Android客户端后台保活经验分享近期支付宝升级到了9.0,除了加入微信功能外,还新增了金钟罩功能,不要说普通的各种加速球,火箭神马的不能杀死他外,连格外牛逼的绿色守...博文来自:薛瑄的博客

  问题一:忘记手机的锁屏密码了Android中在设置中的安全菜单栏中是可以设置锁屏密码的,有直接的文本密码和手势密码(我们一般会用到的两个密码),但是有时候脑子不好使,密码总是忘了,到时候该怎么办呢?方...博文来自:feng787900247的博客

  问题一:忘记手机的锁屏密码了Android中在设置中的安全菜单栏中是可以设置锁屏密码的,有直接的文本密码和手势密码(我们一般会用到的两个密码),但是有时候脑子不好使,密码总是忘了,到时候该怎么办呢?方...博文来自:戎马一生

  本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在网上收集的答案。马上就要过春节了,开年就是崭新的一年,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识...博文来自:wdlhao的博客

  我虽是一个IT屌丝,但特别喜欢关注整个大行业的动态,干IT运维相关工作到现在也快8年了,企业对运维人员的专业能力要求确实提高了不少,现在再去面个运维工程师的职位都要求会个开发语言啥的,这在2007是不...博文来自:alex3714的专栏

  任务代码:执行情况:知识总结:冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法!!!对上面的过程进行总结:该思想体现在成续上的解法是...博文来自:Geek宝宝的努力!

  软件简介(Introduction)免费、轻量、快速的多引擎搜索工具,拥有详细的搜索分类。免费:无须注册,无任何功能限制;轻量:可执行文件的大小只有不到130KB;快速:多线程加快搜索速度,多个引擎的...博文来自:B o o M W o r k s

  Windows10操作系统于2015年7月29日正式发布,此后,win10也就成了新上市的笔记本电脑或者台式机电脑的预装操作系统!win10系统给我们带了全新的体验,当然也带来了一定的烦恼!就拿win...博文来自:happycell188的博客

  对于初学者来说,CPU是什么、什么是双核、4核、6核、8核等。下面,就以上的问题,我们做出一一解答。 故障网帮你解答:CPU是什么、做什么用、一般CPU是接在哪里的,我们先来看看CPU是什么,CPU既...博文来自:he_jian1的专栏

  高等数学积分公式大全导数公式:基本积分表:三角函数的有理式积分:曲率:更多参见:博文来自:吾尝终日而思矣,不如须臾之所学也

  前言抖音短视频APP里虽然有保存视频的按钮,但这种方式保存的视频右下角有抖音的水印,并且这种方式不适用于电脑。所以,写这篇文章来分享如何下载没有水印的抖音视频到本地,此方法适用于电脑和手机,且不需要安...博文来自:Spring的博客

  导演:金沙主演:迪丽热巴/邓伦/陈奕龙/王瑞子/张昊唯类型:剧情/爱情制片国家/地区:中国大陆语言:汉语普通线分钟一千零一夜yun.bai...博文来自:的博客

  前言qq坦白说的推出让许多人感到烦恼,或是被骚扰,或是被撩,完事儿被戏弄之后你还不能屏蔽。。。·...博文来自:WYJ的博客

  以下面试题为个人在面试过程中所遇到的,仅供参考!如有错误,望指出。技术交流群:365814763 1、servlet执行流程客户端发出http请求,web服务器将请求转发到servlet容器,serv...博文来自:eriz程序之路

  支持1. QQ空间短链接生成2. 支持长链接转换3. 支持提交真实QQ号(为了确保提交的数据真实,本站不得已采用QQ登录方式)4. 支持json数据解密(具体请看坦白说数据获取视频教程)工具地址:ht...博文来自:的博客

  最近要研究一下滤波器设计的无乘法器的实现,所以要学习一下加法器的电路,丢了一段时间,忘的差不多了,这里罗列一下常用的门电路的符号。这是一个1位全加器的数字电路组成:以下两幅图可以复习一下数字电路中的常...博文来自:邱长勇的专栏 [计算机视觉 计算机图形学 三维重建 图像理解 语音识别 音视频编解码 机器学习]

  快速排序今天看到大神写的一篇快速排序的博客,肃然起敬,觉得原来快速排序这么简单下面进行简单的试试快速排序的基本思想是1、先从数列中取出一个数作为基准数2、分区过程,将比这个数大的数全放到它的右边,小于...博文来自:code_AC的博客

  现在的搜索引擎会极大的帮助用户搜索到想要的搜索的内容,我们常用的搜索引擎包括百度、搜狗、等等,今天就为大家推荐一个超级搜索的插件。超级搜索基于浏览器的全面搜索。智能识别搜索关键字,集成收藏夹...博文来自:c1007726825的博客

  地图的绚丽是众所周知的,可是在浏览器内看到的地图却只能浏览,不能下载,那我们怎么样才能下载属于自己的能够离线浏览的地图呢,现在就给大家推荐一款超级强大的下载器,话不多说,首先来看看我们的下载成果。...博文来自:水经注地图下载标注与行业应用

  1. 线性代数知识图谱线性代数是代数学的一个分支,主要处理线性关系问题。线性关系意即数学对象之间的关系是以一次形式来表达的。例如,在解析几何里,平面上直线的方程是二元一次方程;空间平面的方程是三元一次...博文来自:MyArrow的专栏

  说到安卓手机,越来越多的功能方便了我们日常使用。如投影到高清电视的无线投屏功能、NFC功能,以及与周边设备数据交换的OTG功能。本文重点讲下OTG功能。OTG功能是onthego的简写,让手机等移动设...博文来自:关注IT、科技、数码周边

  我们的电脑硬盘分区格式一共有两种,一种是GUID(GPT),一种是MBR。怎么判断自己硬盘是哪一种:   如果你的电脑原装系统是win8或者以上的,那么他的硬盘分区表格式为GUID(GPT)格式的;如...博文来自:周士豪

  分享一个快手视频在线解析下载的工具,网上的大多都是要下载软件,只有这个不需要安装任何软件,并且电脑手机上都可以用。这个工具支持解析任何快手视频,并且解析出来的视频没有水印,对,无水印。工具地址:htt...博文来自:Spring的博客

  陌陌好友发给我的视频,怎么保存到手机上?陌陌朋友圈的视频怎么保存到手机里,求方法?如何把陌陌附近人动态视频存到自己手机?......经常有朋友问我类似的问题。很多单身朋友手机上装了个陌陌,然后有时想把...博文来自:Spring的博客

  上篇文章,www.8145111.com,我们分享了手机上下载微博和秒拍视频的方法。最近,因为今日头条对火山小视频大额补贴,越来越火了。网上有很多火山无水印视频提取软件,但是需要安装到电脑上,很多人觉得很麻烦。今天分享个网页版,无需...博文来自:Spring的博客

  对于“程序设计”的工作,许多初学者的理解就是“写代码”。同样,新手们苦恼的问题是,他们只会“写代码”。当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着,就把自己绕糊涂了。头晕脑胀...博文来自:迂者-贺利坚的专栏

  从我这么多年的编程经历中,我深深体会到一条真理,越是挠破头皮,百思不得其解的bug,越有可能是最愚蠢而简单的bug。你往往想不到是它引起的,往往就不愿望这方面去想,当年实在筋疲力尽,准备放弃时,突然灵...博文来自:SUNJDL的博客

  方法1.打开电视2.最左上角的“会员”3.打开“剩余x天”的带王冠按钮(第一行第二个)4.左上角“取消连续包月”5.“是否确认取消....”gt;取消连续包月6.收到...博文来自:Rudon滨海渔村的博客

  99买的天猫精灵,原本也没有抱太高的期望,不过发现被严重拉低期望,还是吐槽一下。1.天猫精灵的客户还算主动,但不能帮忙解决问题,都是简单的教你按照他们的流程走。问题是天猫精灵的流程写的那么简单,按照流...博文来自:Paul专栏

  原生态Ajax使用的步骤,最后告诉面试官,我们在工作中是使用jQuery来实现Ajax请求和处理的。在回答的时候尽量详尽,包括方法的参数的个数,顺序和作用,以免被面试官抓住不放。不给面试官提问的机会,...博文来自:初漾的博客

  Linux常用命令学习Linux常用命令学习1last命令2awk命令3cat命令4top命令5ps命令1、last命令last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/l...博文来自:小拳头的博客

  网上查如何实现html如何打开AndroidApp时(至于怎么实现网上的例子太多了,就不说了),照着他们的方法做,但是打不开,后来发现调用第三方浏览器可以打开,觉的应该是webview的设置问题。想要...博文来自:grp0916的专栏

  问题1.在电脑上观看百度网盘里的学习视频,语速有点慢2.一边观看一边打字做笔记,速度有点跟不上视频的播放PS:没有时间观看罗里吧嗦经过的童鞋可以直接看结果第4点和结论,如果有更好的方法求分享~~经过1...博文来自:DearMorning的博客

  一、公交IC卡售卡充值网点(每日8时至22时开放)开福寺路6号(开福寺旁)朝阳路297号(民航大酒店旁)车站北路105号(五里牌)八一路燕山街38号马王堆中路110号惠泽园小区门口...博文来自:muxiaoshan的专栏

  weixin_43825221:您好,我按您说的方法,但是系统的substrate.h显示出很多错误,您又遇到这个问题吗?

  actor1999:[reply]FindAllBlue[/reply] 别人也有可能是记录一下自己的学习过程,觉得太浅你可以自己去写一篇,我认为你这样直接的否认别人不好。



上一篇:“每个家长都觉得自家孩子是最优秀的,观音心经 下一篇:没有了