RFID射频卡写入手机NFC心路小记

news2024/11/15 15:25:03

声明:

  • 本文仅是作者学习探索的心里路程日记,如果您看完以后,从中获得了一些知识,作者不胜荣幸。
  • 科技是一把双刃剑,利用好了,可以方便生活,利用不当也肯能扰乱公共管理秩序,造成不必要的麻烦。
  • 文章中的方法仍需要经济支出,借助他人工具完成,如读者想全凭个人之力从零制作自己的读卡解码设备,可至此结束。
    加粗样式

    目录

    • 1 作者大意丢门卡,一心便捷改出行
    • 2 拾理论重制读写器,笨方法难读加密卡
    • 3 陷密区锁匠巧解码,写手机再破便捷梦
    • 4 暴力破解再试水,万千秘钥仍落空
    • 5 购物网再显神通,读卡器终破密码
    • 6 不求人循迹探索,要自主解析数据
    • 7 假软件时常崩溃,找规律自写程序
    • 8 无卡自由终圆梦,遵守底线有始终

1 作者大意丢门卡,一心便捷改出行

  目前,各个小区多使用射频卡管理门禁和电梯使用,只有拿到了小区物业发给业主的门禁卡后,业主才能通过刷卡的方式进入单元楼或使用电梯。
  作者所住宅的小区便广泛应用了射频卡这一管理方式。自从家中换上了指纹智能锁之后,越来越享受不带钥匙的便利,然为了能正常使用电梯,出门时仍需带着一张电梯卡,由于本人的马虎和电梯卡的小巧,在短短半个月内,竟因为掏兜时不注意丢失了两张门禁卡。补办一张卡拾元,虽不贵,但是仍然心疼和懊恼,于是,想把门禁卡写入自己带有NFC功能的手机中的想法便油然而生。
(虽然网上方法很多,甚至一些大神从网上找一些代码即可破解并且无限制制作各种卡,但是教程不详,作为一个这方面的小小白只能望而却步自行探索。)加粗样式

2 拾理论重制读写器,笨方法难读加密卡

  既然,想要破解门禁卡,那必然需要了解门禁卡。
  作者本科学的是电气专业,自然学习过单片机等知识,并且也是单片机的爱好者。玩单片机必不可少的是控制各种模块。以前就使用过射频卡读写模块,但当时了解不深,仅仅是使用例程读到了卡的UID号便不了了之了。再次遇到这种问题,便找出了当年用过的射频卡模块,重新学习阅读了使用手册和M1 IC射频卡的相关知识。为此,我还重新设计了一块单片机系统板,方便单片机和射频卡模块连接。

  既然想读卡,那就需要知道卡类型,卡的存储结构。射频卡根据通讯频率,存储数据方式也分好多种类,我使用的便是最常见的M1卡。该卡的存储空间分为16个扇区,每个扇区有四个块,每个块又有16个字节。除0扇区外,每个扇区前三个块便是数据区,第四个块存放的便是该扇区的控制方式和读写密码。此处不详细阐述讲解,可参考该模块的手册文档加以了解。
在这里插入图片描述
  通过自己制作好的单片机系统板和读写模块进行连接,重新修改例程,方便了自己通过串口控制读写。便开始读取门禁卡。前十个扇区读取都非常顺利,唯独到了第十一个扇区,串口便打印输出密码验证错误的提示。跳过该扇区继续读取,最终除十号扇区外,全部读取成功,但也都是空扇区。最终得出,只有十号扇区是加密扇区,里面写了门禁的各种数据。
  此时,我也曾想到了暴力破解的方式,但是我也清楚的算到密码的组合方式有二百万亿之多,以我这小单片机的算力,需要算上个把月都不一定跑的出正确密码。至此,该方式便以失败告终了。

3 陷密区锁匠巧解码,写手机再破便捷梦

  无意间,我得知家人从我一个配钥匙的长辈哪里给家里复制了好几张门禁卡,因此我想那个长辈手中肯定有网上买来的门禁卡复制器。既然能把卡内容复制出来,必然可以破解出来加密扇区的内容。
  为此,我找到了那个长辈的门店,见到了那个可以复制卡的设备(见下图),我把门禁卡贴到读卡器上,按下读取,很顺利的便读取完成,并提示读取成功。我赶紧拿出手机生成了一张空白卡,并利用读卡器的写入功能往手机里写如原卡数据,可是手机显示写入完成,但是读卡器显示写入失败。我重新尝试了几次,读卡器都显示写入失败。不甘心的我认为,既然手机都提示数据写入完成了,没准就成功了呢!
在这里插入图片描述
  拿着写好的手机,便急匆匆赶回去试验,把手机模拟的那张卡打开,贴近电梯读卡器,结果便是电梯根本没有反应。
  心想既然这个设备写不成,那我看到解密出来的密码,自己的读写模块没准可以写成。于是,我便再次返回到那个长辈那里,试图从按个读卡器的按键中按出扇区数据来可以查看扇区里面的内容。但是这个手持设备根本没有显示扇区数据这个功能。后来我才了解到,它需要连接电脑或者手机后才可以通过软件查看和导出数据。鉴于我不方便借走这个东西并且也无法直接和客服寻求软件使用方法,探索之路再一次告破。

小记:非常优秀的读卡器为什么写入手机会出错呢,后来的探索过程中才了解到,一般IC卡片的第一个扇区的第一个块只读,因为这个块写的是卡号和厂商代码,是固化的并不能修改。然而复制的新卡使用的是专门可复制的空白卡,卡里的每个扇区都可以读写。因此读卡器复制卡到新卡上写入就可以成功。但是,手机模拟生成的空白卡第一个扇区的第一个块也是固定的,不允许修改,因此读卡器再写这个块时便提示写入失败了。
那写入第一个块失败,只要加密扇区写入成功了不就不影响使用吗?其实不然,我所在的小区门禁读卡系统,并不每个卡的加密扇区都一样,密码是通过卡的UID号就算出来的,因此如果电梯的读卡系统通过卡号计算出来的加密密码,和加密扇区写的密码不一样,自然读不出来加密扇区的数据。

4 暴力破解再试水,万千秘钥仍落空

  既然说密码组合方式有二百万亿之多,为什么还要再次尝试破解呢,缘因看到了一篇博文,提供了一种手机APP可以专门通过手机端NFC读写功能对门禁卡进行各种密码的遍历探索,虽然手机的读取速度相比较单片机更快,然而遍历的密码如果还是这二百万亿多个也是不现实的,为此,网上提供了一种秘钥字典,里面包含了各种可能的密码和网友们分享出来的密码。大概有几万个之多,将这种秘钥字典导入手机APP,通过手机APP对这些秘钥字典进行遍历尝试,试图找到正确的秘钥。
  我从网上大概找了十万多个秘钥,为了防止手机长时间读取导致发热过烫,我还将秘钥每一万个一组分成多个文件,挨个尝试。每一万个秘钥文件大概需要二十分钟才可以遍历完,这还仅是探索秘钥A的时间,还要继续尝试秘钥B,因此每一万个秘钥大概一个小时才可以遍历完。这段时间还要手机紧贴门禁卡,时刻关注APP的探索信息,不能再用手机干别的事情。因此这也是一个枯燥的过程。
  我大概用来两天的时间才完成了这十多个秘钥的遍历,没一个对的。评论中到是有个别网友试验了五千左右就成功的,各位也不妨一试。

5 购物网再显神通,读卡器终破密码

6 不求人循迹探索,要自主解析数据

7 假软件时常崩溃,找规律自写程序

8 无卡自由终圆梦,遵守底线有始终

更新中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试】测试老鸟的迷途,进军高级自动化测试测试......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 很多从业几年的选手…

如何在没有任何额外包的情况下使用 NodeJS 下载文件

如何在没有任何额外包的情况下使用 NodeJS 下载文件 您可以下载文件(图像、文本或任何类型的文件)并使用 NodeJS 内置 https和 fs模块将其保存到您的文件系统。 该 https模块允许您使用 NodeJS 创建 HTTPS 请求,同时该 fs模块授予您访问文件…

VR全景的普及还将会带来什么新的风口?

5G技术的普及让VR全景在诸多行业中逐渐融合应用,VR全景展示可以更加真实、更加直观地让用户自主观看现场真实场景,基于身临其境的效果,VR全景展示已经被广泛的应用于各行各业,那么VR全景的普及还将会带来什么新的风口呢&#xff1…

FAST‘23《λ-IO: A Unified IO Stack for Computational Storage》论文解读

FAST’23《λ-IO: A Unified IO Stack for Computational Storage》论文解读 Data:2023-2-27 Ref: Z. Yang et al., “λ-IO: A Unified IO Stack for Computational Storage,” in 21st USENIX Conference on File and Storage Technologies (FAST 23), Santa Clara, CA, Feb.…

我的Android前沿技术—— Artifactory私服 搭建

我们说的私服,其实指的是企业局域网内的软件包依赖库。 说到软件库,就会牵扯出另一个概念——包管理器。 包管理器是在电脑中自动安装、配置、卸载和升级软件包的工具组合。包管理器由于其便捷性,被越来越多的新技术所采纳,从老…

Cesium 编程入门

Cesium 是什么? Cesium 是一个跨平台、跨浏览器的展示三维地球和地图的Javascript库。 Cesium 使用WebGL 来进行硬件加速图形,使用时不需要任何插件支持,但是浏览器必须支持WebGL。 Cesium能做什么? 支持2D、2.5D、3D形式的地图展…

Java代码规范

前言 由于近年来对于代码质量的要求越来越高,特制定部门级Java代码规范规则集X-JAVA-RULE,整体要求规则可用可查、循序渐进。 可用是指考虑目前已有代码的体量,不满足这些规则的代码能否能被修复,如果工作量巨大不能被修复或者实…

小程序和Vue+uniapp+unicloud培训课件

文章目录**一、什么是小程序****1.1** **小程序简介****1.2** **小程序的特点****1.3** **小程序的开发流程**个人小程序和企业小程序的区别1.4 小程序代码构成1.4.1 JSON 配置1.4.2 WXML 模板**数据绑定**逻辑语法条件逻辑列表渲染模板引用共同属性1.4.3 WXSS 样式1.4.4 JS 逻…

9. IP组播(理论)

作为IP传输三种方式之一,IP组播通信指的是IP报文从一个源发出,被转发到一组特定的接收者。相较于传统的单播和广播,IP组播可以有效地节约网络带宽、降低网络负载,所以被广泛应用于IPTV、实时数据传送和多媒体会议等网络业务中。 …

5 逻辑回归及Python实现

1 主要思想 分类就是分割数据: 两个条件属性:直线;三个条件属性:平面;更多条件属性:超平面。 使用数据: 5.1,3.5,0 4.9,3,0 4.7,3.2,0 4.6,3.1,0 5,3.6,0 5.4,3.9,0 . . . 6.2,2.9,1 5.1,2.5…

一个容易被忽视的标签 —— iframe

前言 甲问:说说你知道的HTML标签。 乙于是说了一大堆标签,比如div,span等等。 甲说:那你知道 iframe 标签吗? 乙这时候迟疑了片刻,缓缓说出:知道它,但是不太了解这个标签。 HTM…

学到了,原来华为是这样判断MES系统的好坏的

可以想象华为公司对供应商的要求是多么严格,那么我们今天来谈一下华为对供应商工厂MES系统这块的要求,这要从生产防错系统、品质管控系统、品质追溯系统、出货防错系统四个方面来说。一、生产物料和生产治具防错系统建立完整的物料和治具标签方案&#x…

常用的数据脱敏(手机、邮箱、身份证号)

一、什么是数据脱敏 先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如 手机号、银行卡号 等信息,进行转换或者修改的一种技术手段,防止敏感数据直接在不可靠的环境…

AcWing3485. 最大异或和

先看题目: 说实话,我看到这道题就想用滑动窗口,但是滑了一下发现不太对啊,如果我用滑动窗口的话,那么最后肯定是一个固定长度为m的窗口在持续计算,区间长度小于m的区间的异或和肯定会被遗漏。然后我就想怎么…

vue前端架构说明书模板示例

目录 1. 技术说明... 2 1.1 版本明细... 2 1.2 核心技术介绍... 2 2. 项目结构说明... 3 3. 自动化部署设置说明... 5 4. 打包及运行说明... 5 5. 导包说明... 6 5.1 方案一... 6 5.2 方案二... 7 5.3 补充说明... 7 6. 修改本地运行时链接的服务器说明... 7 7. 常…

从 B 站出发,用 Chrome devTools performance 分析页面如何渲染

页面是如何渲染的?通常会得到“解析 HTML、css 合成 Render Tree,就可以渲染了”的回答。但是具体都做了些什么,却很少有人细说,我们今天就从 Chrome 的性能工具开始,具体看看一个页面是如何进行渲染的,以及…

视频传输协议详解(RTMP、RTSP、HLS)

RTMP——Real Time Messaging Protocol(实时消息传输协议)RTMP是由Adobe公司提出的,在互联网TCP/IP五层体系结构中应用层,RTMP协议是基于TCP协议的,也就是说RTMP实际上是使用TCP作为传输协议。TCP协议在处在传输层&…

sql学习一

文章目录一、if 语句二、去重问题三、concat,upper,lower四、group_concat五、like 模糊匹配六、union和union all七、流程控制语句case八、limit一、if 语句 if(expr1, expr2, expr3)当expr1的值为真时函数的返回值为expr2,当expr1的值为假时,函数的返…

安装redis并设置开机自启动允许远程链接

一、进入/usr/local目录下面;下载redis包wget https://download.redis.io/releases/redis-5.0.14.tar.gz二、安装gccyum install gcc-c三、解压、进入目录、编译tar -xvf redis-5.0.14.tar.gzcd redis-5.0.14make ##如果报错zmalloc.h:50:31: 致命错误:j…

打破单片机开发模式--胶水语言(JavaScript)

概述 传统的嵌入式单片机开发基本上形式如下图: 该流程对于功能单一或者功能变更极少的场景是比较友好的,但是对于设备应用层变更比较多或者公板方案开发应用的场景,上述场景显的有些累赘。那么有什么方式可以解决呢?&#xff1f…