转】M1卡密钥破解,收藏

article/2025/9/13 0:35:16


M1卡说明及使用proxmark3破解方法

看了网上写的一些关于M1卡的文章,多数有些误导之嫌。首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位。1Byte=1B=8位。其实也就是说8k位想到于1KB的容量,也就是说一个4GB的U盘的存储空间约等于四百万张m1卡的空间。
        虽然空间比较小,但是里面其实学问很大,我们来看一下M1卡的内部结构。M1卡分为16个数据存储区,通常我们称为“扇区”,编号是“0”到“15”。每个扇区又分为4个存储单元,我们称为“块”,在M1卡中数据存储的最小单位就是“块”。每一块有16字节(16B),用来存放数据。
就像下图所示:
 

其中每个data为一个“块”。这样我们可以计算一下:16b* 4(块)*16(扇区)=1024B 就是1K。

第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

在全扇区加密时,通常用前三个“块”(0,1,2号块)存放数据,用最后一个”块“(3号块)存放密码。
其中密码分为A密码和B密码:前6个字节存放A密码,中间4字节为控制字段,后6字节存放B密码。
例如:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5
注意这里每个扇区的密码都是独立的,也就是说可以为16个扇区设置16个不同的密码,当然也可以使用相同的密码,但是这样会大大降低破解的难度。例如上图中的该扇区A密码为空:000000000000,B密码为:FFFFFFFFFFFF。
对于控制位这里有点门路,我找了很多网上的文章,其中发现这篇讲解得最好:http://www.duoluodeyu.com/2013/835.html
但是注意其中的 字节7是C1Y,而不要把字节6、7、8一次当成了C1Y C2Y C2Y。注意到这一点对于理解就没什么难度了。 
每个M1卡都有一个唯一的序列号,我们称为“UID”,是32位的,也就是4个字节。
M1卡是典型的高频卡,工作频率为13.56MHz,一般调频(FM)收音机接收的广播频率在87MHz到108MHz之间。猜想:如果高频卡工作频率达到80MHz以上时在读卡或写卡时产生的频率应该能对该频段收音机产生电磁干扰。
通信速率:106KBPS,也就是说可以在10毫秒的时间内完成读写内容。
工作半径:100mm。大约在100mm以内的距离,可以使用读卡器对m1卡进行操作(一般写距离要小于读距离)。

在使用proxmark3对M1卡进行破解时 ,我们可以使用hf mf mifare命令去探测基于PRNG的漏洞出现的Key 。
例如:


然后使用hf mf nested 1 0 A FFFFFFFFFFFF  去探测各个扇区的密码,例如:


花费几分钟后,得到如下的key列表:



根据这个key列表,按道理使用hf mf dump就可以直接读取各扇区的数据了,但是这里遇到了点问题,hf mf dump使用默认的密码FFFFFFFFFFFF来读取各扇区数据,而这里只有0扇区密码正确,其他的均无法dump,所以我们需要使用其他办法。

[size=1em]hf mf rdsc 1 a 1866c42fe6a8
来读取第一扇区数据:

同样的用 hf mf rdsc 2 b 1866c42fe6a8
读取第二扇区数据,这里为什么用B密码是有原因的(因为控制位设置的问题 )。
依次读取16个扇区即可。(其实在这张卡中,只有前3个扇区有数据,后面的扇区数据块均为空)
这里我们就获取了全部想要的数据,在最开始接触m1卡的时候由于知识的不足,总感觉可以控制的位置是有限的。
这也就是不要已经拥有了整个世界还觉得不完美。  

现在就可以去刷卡,然后把16个扇区的数据做一个对比了,看看哪一位变化了,如何变化了。


Mifare1智能洗澡卡破解分析


Mifare Classic card提供1k-4k的容量,我们经常见到的是Mifare Classic 1k(S50),也就是所谓的M1卡。M1卡有从0到15共16个扇区,并且每个扇区都有独立的密码,每个扇区配备了从0到3共4个段,每个段可以保存16字节的内容,反正从0开始数 就对了(和数组下标为0开始一样)。

每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,剩下的是厂商数据。并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,当然也有例外,有种叫UID卡的特殊卡,UID是没有设置保护的,其实就是厂家不按规范生产的卡(我们在网上买的空白卡片一般都是这种可以修改UID号的卡)。

今天我们以破解一张洗澡卡为例:

用到的工具

读卡设备:ACCR122U一个

空白M1卡片两张

正常使用洗澡卡一张

上图:

平台:windows7

软件:NFCGUI-PRO.exe

M1卡服务程序

破解思路:在M1卡的16个扇区内的某一个扇区内的字段中存储着洗澡卡内的信息,例如使用时间、使用次数、水卡金额等信息,想要修改卡内的信息就要将卡片内的记录数据导出,每个扇区第一个字段的16个字节是扇区的秘钥对,我们要是想要导出数据就要通过穷举的方法测试出秘钥对,只有知道秘钥对后才可以导出卡片内文件(具体原因请百度M1卡工作原理或查看:http://www.hufubo.com/?p=202),幸运的是国内大部分的M1卡都是使用的默认密码或者弱密码(例如 FFFFFFFF  FFFFFFFF),我们可以使用比较傻瓜式的软件M1卡服务程序穷举秘钥对并导出卡内的dump文件(通过破解软件导出的数据文件都为xx.dump格式文件),然后通过一张卡多次消费并导出dump文件来对比不同金额情况下扇区内的信息来核算出具体的金额控制位,然后通过NFCGUI-PRO.exe程序将修改好的dump文件写入到空白的M1卡内。

具体实施:

声明:在实施过程中有可能我的步骤不是最简便和最有效的办法,但是作为科普入门级的文章,只希望更多的人能理解实施的过程,以更好的去防护这种方法。

  • 先去洗澡卡终端查看卡内的余额:

卡内余额为26.91元,然后将ACR122u插在机器上,使用M1卡服务程序破解得出卡内的DUMP文件

使用M1卡服务器程序破解:

破解成功:

由于这种M1卡秘钥对为弱密码所以大约几十秒的时间就会破解成功,dump文件会生成在文件目录下:

dumpfile 4da2e80e(2015-08-2523_4).dump文件就是生成的破解文件  可以看到生成的dump文件为1KB大小,但是具体写入M1卡的时候是需要写入4KB大小的dump文件的

ps:这些软件本来是基友Linux开发的,移植到win平台上只能生成1kb的dump文件,我们可以使用修复工具:fixdump将1KB文件修复为4KB,也可以使用NFCGUI-PRO.exe

这个软件自带的修复功能修复为4KB文件,我是使用的NFCGUI-PRO.exe

修复,如图:

打开这个软件点击选择文件-选择刚才生成的1KB文件-就会提示“是否保存为4K文件格式”—选择“是”-就是自带修复成功

然后关闭软件,刚才的1kb的DUMP文件就会自带修复为4KB文件了。

通过上面的方法得出三个不同金额的dump文件。

2)通过十六进制编辑器进行dump文件的对比,找出金额控制位,我使用winhex进行编辑dump文件:

因为这两个文件都是同一张卡片不同金额的dump文件,所以假定有金额的数据不同,有刷卡次数记录的数据不同,刷卡时间的记录不同,(假定会有这些不同之处,也许只有记录金额的变化),通过对比两张卡片,发现在00000176 和00000192处有不同的数据块

如图;

余额为26.91:

余额为26.88:

发现这两张卡内的不同之处在于:



通过十六进制转换测试:

Hex(80 0A)=32778

HEX(7F F5)=32757

测试发现并不是这么简单的直接转换,于是将 800A 进行翻转为 0A80

HEX(0A80)=2688    2688符合卡内余额为26.88的实际情况。

HEX(0A83)=  2691   2691符合卡内月为26.91的实际情况。

可以总结得出金额位的加密方法为 金额转换十六进制后进行翻转存储。

接下来分析 7F F5代表的含义

根据M1卡了解 金额位置后面会有校验位数据,通俗讲就是当前面金额数据变了之后,校验位会根据另外的算法去改变值。

一般最简单的算法都是二进制取余后转换为16进制再加上金额位的加密方法

计算方法如下:

校验位7F F5-翻转为F5 7F转换二进制为1111010101111111  二进制取余为0000101010000000 转换为十进制为:

Hex(0000101010000000)=2688

可以得出金额校验位的加密方式为将金额转换为二进制后取余,取余后的二进制转换为16进制,将16进制翻转后得到的结果就是金额校验位的信息

例如金额为26.88—2688–0000101010000000—1111010101111111–F5 7F–7F F5

计算出金额校验位应填7F F5

计算出金额位和金额校验位的加密方式后可以进行金额的修改

修改金额为600元则计算

金额位:600—60000—EA60—60EA

金额校验位:600—60000—1110101001100000—0001010110011111—159F—9F15

则金额位填:60EA

金额校验位填:9F15

直接在winhex内修改dump文件:

直接保存文件为600.dump,dump金额就修改成功了

3)将文件写入到空白卡片中

通过NFCGUI-PRO.exe软件进行dump文件写入:

如图:

打开NFCGUI-PRO.exe软件后DUMP和Key文件选择加载文件600.dump

将ACR122U插入到电脑后将空白卡片放到读卡器上后选择写入文件

写入成功:

4)测试:

到这里就是M1卡破解的基本步骤,仅作科普文章,请勿做违法事件!

解决方案:

1)将卡片全部更换成CPU卡,CPU卡可以模拟M1卡结构,完全代替M1卡,安全性也比逻辑加密的M1卡更安全。

2)采用一卡一密系统,一卡一密可以免去升级硬件的麻烦,最大程度保护IC卡系统。

3)采用滚动码系统,增加效验,加大破解成本



通过十六进制转换测试:

Hex(80 0A)=32778

HEX(7F F5)=32757

测试发现并不是这么简单的直接转换,于是将 800A 进行翻转为 0A80

HEX(0A80)=2688    2688符合卡内余额为26.88的实际情况。

HEX(0A83)=  2691   2691符合卡内月为26.91的实际情况。

可以总结得出金额位的加密方法为 金额转换十六进制后进行翻转存储。

接下来分析 7F F5代表的含义

根据M1卡了解 金额位置后面会有校验位数据,通俗讲就是当前面金额数据变了之后,校验位会根据另外的算法去改变值。

一般最简单的算法都是二进制取余后转换为16进制再加上金额位的加密方法

计算方法如下:

校验位7F F5-翻转为F5 7F转换二进制为1111010101111111  二进制取余为0000101010000000 转换为十进制为:

Hex(0000101010000000)=2688

可以得出金额校验位的加密方式为将金额转换为二进制后取余,取余后的二进制转换为16进制,将16进制翻转后得到的结果就是金额校验位的信息

例如金额为26.88—2688–0000101010000000—1111010101111111–F5 7F–7F F5

计算出金额校验位应填7F F5

计算出金额位和金额校验位的加密方式后可以进行金额的修改

修改金额为600元则计算

金额位:600—60000—EA60—60EA

金额校验位:600—60000—1110101001100000—0001010110011111—159F—9F15

则金额位填:60EA

金额校验位填:9F15

直接在winhex内修改dump文件:

直接保存文件为600.dump,dump金额就修改成功了

3)将文件写入到空白卡片中

通过NFCGUI-PRO.exe软件进行dump文件写入:

如图:

打开NFCGUI-PRO.exe软件后DUMP和Key文件选择加载文件600.dump

将ACR122U插入到电脑后将空白卡片放到读卡器上后选择写入文件

写入成功:

4)测试:

到这里就是M1卡破解的基本步骤,仅作科普文章,请勿做违法事件!

解决方案:

1)将卡片全部更换成CPU卡,CPU卡可以模拟M1卡结构,完全代替M1卡,安全性也比逻辑加密的M1卡更安全。

2)采用一卡一密系统,一卡一密可以免去升级硬件的麻烦,最大程度保护IC卡系统。

3)采用滚动码系统,增加效验,加大破解成本


http://chatgpt.dhexx.cn/article/moS9HKSu.shtml

相关文章

校园一卡通的快速破解

原文:http://bbs.pediy.com/showthread.php?t162099 校园一卡通的快速破解 校园一卡通在高校被广泛使用,能够方便地实现转账消费一体化。在学校内可用于食堂,浴室,超市的消费,工作场所的门禁卡。每个学校在实现一卡…

IC卡防复制 设备联网 动态密钥方案说明 一卡通 门禁卡防破解Mifare卡低成本动态加密实现思路

目前市面上常见的IC卡,无论是学生卡,水卡,门禁卡,会员卡等大部分均为Mifare1S50卡,这类卡片存在易破解、被复制等安全性风险。如果更换为CPU卡,固然安全性会有大幅度地提高,但是CPU卡本身价格相…

破解 M1卡(洗澡卡、开水卡,健身卡,饭卡)等

M1卡(洗澡卡、开水卡,健身卡,饭卡)破解历程,学会这个今后还怕没饭吃? 又经过了一个寒假的纠结,终于决定入手了ACR122U,只是到手后机器看上去确实感觉比¥180要廉价,看图就…

校园卡水卡最低成本破解具体过程(补上上次工具教程)By:dj1149 -02

校园卡水卡最低成本破解具体过程(补上上次工具教程)By:dj1149 -02 有必要申明下:以下是分享工具用法和破解过程,大家切勿做违法的事情别问我银行卡行不行。。。 大家拿不联网的卡练手就好了上次发出破解工具,大群人都找我出教程=。= 其实我也是刚弄好。所以,这次把教程发…

记录一次利用pn532进行学校水卡改余额过程

仅为个人学习分享,切勿利用破坏违法,本人对其内容不负任何法律责任 一、准备过程 1.PN532 2.PL2303串口模块USB转TTL (在某宝,两个元件加一起才30多元) 连接电脑后安装驱动,某宝老板会给…

一卡通(M1卡)破解过程记录——数据分析(水卡、饭卡及门禁)

前些日子在研究学校的一卡通安全,在此记录一下一卡通破解的全过程,仅用作学习交流,切勿用于违法用途 其他几篇: 一卡通(M1卡)破解过程记录——准备篇 理论篇 获取扇区密钥 到这一步时,一卡通的破解可以说已经成功了。一般来说,为了便于读卡器使…

校园水卡M1卡破解写卡

M1卡说明及使用proxmark3破解方法 看了网上写的一些关于M1卡的文章,多数有些误导之嫌。首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位。1Byte1B8位。其实也就是说8k位想到于1KB的…

初学RFID-破解学校水卡

注:(本文只作技术研究之用,请勿用于非法用途,否则后果自负!!) 基本知识: Mifare Classic card提供1k-4k的容量,我们经常见到的是Mifare Classic 1k(S50),也…

学校水卡、本地公交卡破解记

写在前面:破解卡只为科学研究所用,并探讨数据加密升级的必要性。 很早就在网上看过有网友发帖称破解了自己学校的水卡,颇有感触,上某宝查了下需要购买的设备ACR122U,居然要100多元,省吃俭用许久后我终于下单。破解完成后发现并没有我想象中这么难。 我已经破解了四张卡且…

校园水卡-数据分析+破解思路

本人纯高中生,对数码感兴趣,专业知识不懂 我们学校水卡兼顾吃饭和喝水功能,由于吃饭是鑫考云系统背后有支付宝,破解就可能就进去了(当然能力也不够(¬口¬)ノ),于是我便对…

【语音唤醒】WEKWS:第一个小型的端到关键词发现工具包

摘要 语音唤醒(KWS,Keyword spotting )实现了基于语音的用户交互,逐渐成为智能设备不可或缺的组成部分。最近,端到端(E2E)方法已经成为设备上KWS任务最流行的方法。然而,目前端到端加密KWS方法的研究和应用还存在一定的差距。在本…

讯飞语音唤醒、识别、合成

文章目录 讯飞SDK的使用官网SDK所提供的的文件官网Demo的使用自己新建工程导包步骤 语音唤醒语音识别在线语音合成 讯飞SDK的使用 Demo链接: 语音唤醒 [link] (https://download.csdn.net/download/the_only_god/11376540) 语音识别 [link] (https://download.csdn…

语音认别---唤醒技术KWS介绍

语音认别---唤醒技术KWS介绍 由于目前终端(如手机)上的CPU还不足够强劲,不能让语音识别的各种算法跑在终端上,尤其现在语音识别都是基于深度学习来做了,更加不能跑在终端上,所以目前主流的语音识别方案是声…

【语音智能管家】之语音唤醒(附演示视频)

目录 一.语音唤醒引擎(snowboy) 1.获取源代码并编译 2.自定义自己的唤醒词(唤醒词:小贝) 3.测试 二、自定义响应 三、实现了智能语音音响--听音乐 后续延伸 【加群获取学习资料QQ群:901381280】 我设…

科大讯飞语音唤醒(Android)

前面的工程项目配置和语音识别差不多,但是需要从SDK的res文件夹中复制ivw文件夹粘贴到main下面的assets文件夹下面。具体的文件配置结构,我截个图给大家看看: 剩下的步骤就是两页代码了,附上! 首先是MyApplication中的…

【飞桨PaddleSpeech语音技术课程】— 语音唤醒

(以下内容搬运自飞桨PaddleSpeech语音技术课程,点击链接可直接运行源码) 1. KWS 概述 随着人工智能的飞速发展,市场上推出了各式各样的智能设备,AI 语音的发展更是使得语音助手成为各大智能终端设备必不可少的软件。语音是人类与设备最直接…

语音唤醒的具体技术方案

\qquad 昨天的文章说的是不同的语音激活检测技术,传送门今天要说的是这个技术中间的具体的语音唤醒技术。语音唤醒技术到目前已经经过了三代的发展了。 第一代的技术很好理解,就是先构建一些模板,然后遇到语音,和模板进行匹配&…

26、使用友善NanoPi NEO和外设硬件实现语音唤醒功能、目标检测功能、语音播报功能

基本思想:使用友善开发板进行目标检测和测试 第一步:查看教程和进行刷机http://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO/zh#.E4.B8.8B.E8.BD.BD.E7.B3.BB.E7.BB.9F.E5.9B.BA.E4.BB.B6 小开发板子还是蛮不错的~,友善也开始卷了。。…

科大讯飞Windows麦克风监听语音唤醒+语音识别demo

最近在学习如何应用API来实现语言交互系统的功能,所以打算写一篇文章来整理和记录自己了解API使用的过程。 有很多平台提供语音识别等功能的API,文章使用的是科大讯飞开发的API。使用讯飞开放平台SDK实现一个Windows语音交互demo 讯飞开放平台简介SDK的下…

讯飞语音——唤醒

讯飞语音唤醒 唤醒功能,顾名思义,通过语音,唤醒服务,做我们想做的事情。 效果图(开启应用后说讯飞语音或者讯飞语点唤醒) 源码下载 地址:http://download.csdn.net/detail/q4878802/9023213 步…