贞操锁
最近考完试无事可做,想到上个月购买的QIUI远程贞操锁已经到货了,所以就尝试分析了它的工作原理,在分析的过程中发现了这款锁的设计缺陷,故利用这个漏洞完成了该破解工具。下面分为几个部分进行讲解。本人第一次做Android逆向,也是第一次做BLE相关开发,有什么做的不好的地方还请dalao指教 orz
工作原理:
工作原理如帖子附图所示,开锁总共需要完成6步操作,其中图中的每一步的具体工作如下:
1、向服务器发送信息,判断账号密码是否正确、是否有权限解锁等等。
2、服务器返回结果,若通过验证,则手机可以发送相关指令操控贞操锁。
3、蓝牙成功连接锁具后,发送指令[0x06,0x01,0x01,0x01,0x2D,0x1A,0x68,0x3D,0x48,0x27,0x1A,0x18,0x31,0x6E,0x47,0x1A],用于获取token。token用于接下来的开锁操作。
4、若锁具成功获取该指令,则返回一段16字节长度的数据,其中前3个字节的数据固定为[0x06,0x02,0x0C],这三个字节的数据用于表示该段数据中包含token信息。之后第4字节到第7字节的数据即为本次开锁的token。
例如:假如设备返回的数据为[0x06,0x02,0x0C,0x24,0xBB,0x2E,0x17,0x02,0x01,0x03,0x01,0x15,0x06,0x00,0x16,0x00],则本次开锁的token为[0x24,0xBB,0x2E,0x17]
5、成功获取token信息后,手机即可向锁具发出指令解锁。解锁指令格式为[0x05,0x01,0x06,0x30,0x30,0x30,0x30,0x30,0x30,token,0x30,0x30,0x30]总共长度为16字节,其中第10字节到第13字节即为上一步中获取到的token。例如:上一步中token的值为[0x24,0xBB,0x2E,0x17],则本次解锁的指令为[0x05,0x01,0x06,0x30,0x30,0x30,0x30,0x30,0x30,0x24,0xBB,0x2E,0x17,0x30,0x30,0x30]
6、锁具收到解锁指令后就会开始执行,并返回一段16字节的数据用于说明本次解锁是否成功。
注意:手机与锁具通信的数据(即图中红色文字涉及到的数据),全部都采用128位密钥、ECB、NoPadding模式的AES算法进行加密,但密钥是固定的,加密密钥为[0x3A,0x60,0x43,0x2A,0x5C,0x01,0x21,0x1F,0x29,0x1E,0x0F,0x4E,0x0C,0x13,0x28,0x25]
破解思路:
从工作原理部分可以看出,身份与权限的验证部分全部是由APP完成的,而锁具本身并不参与验证过程,只要有手机向锁具发出了正确的解锁命令,锁具就能完成开锁工作,而且因为这一部分完全是离线操作,所以APP内的开锁记录中不会记录到任何信息。
故本人开发了一款APP用于模拟步骤3-步骤6的全部开锁工作。使用该APP则可以自由开锁。
破解工具使用方法:
破解器下载链接https://pan.baidu.com/s/1lWs4ubovulfZkRGXFd6Stw
1、打开贞操锁、APP与蓝牙,点击搜索蓝牙设备,等待5秒钟,程序会自动搜索附件的蓝牙设备,点击其中一款设备连接贞操锁。(如图所示,图中OKGSS“马赛克” CF:BA:“马赛克”即为我的贞操锁,OKGSS“马赛克”为设备名,后面的字母为设备的MAC地址。你们的锁的设备名应该是跟我差不多的,但MAC地址一定是不同的,不同的设备对应着不同的MAC地址)。
2、当程序显示连接成功后,等待3秒钟时间,程序会自动获取token,之后再点击unlock,顺利的话贞操锁会自动打开。如果显示开锁失败,有可能是蓝牙连接的设备不对,换一个设备连接重新尝试。
(注意:有时候即使正确连接的贞操锁,也有可能因为一些未知原因没有获取到token,这时可以重新启动贞操锁与该工具,重新尝试连接。
其次,扫描蓝牙设备需要使用地理位置权限,请给APP授权相关权限)
至此,破解教程已经完全结束,那么这个故事给了我们什么启示呢?
对付理工男m可能还是传统机械锁靠谱一些233333
相关阅读
App行业火了5年,根据目前了解的情况来看,开始越来越不乐观,越来越向下坡路的方向走。来自艾媒咨询研究显示,App的生命周期平均只有10
强化学习系列(七):n-step Bootstrapping (步步为营)
一、前言 在强化学习系列(五):蒙特卡罗方法(Monte Carlo)和强化学习系列(六):时间差分算法(Temporal-Difference Learning)中,我们介绍了
APP的制作的技术、资本成本大幅度降低,对于中小企业来说,面临的下一个问题就是,APP如何做推广。毕竟很多都是小公司,从营销角度来说,烧
推荐几款可以直接在手机上编程的app(包含Java、C、Pyt
这里介绍几款可以在手机上编程的app,分别是: 1.java和Android:AIDE集成开发环境。 2.C语言:c语言编译器、C4droid。 3.python:QPyth
序言 随着时代的进步,人的生活多元化。一些公司的 App 也随着人的生活改变而进行适和情景的变化。比如,本公司的 App 在四月时是本