avatar

目录
FRID:破解学校M1水卡

最近看了很多破解M1的文档,无意发现学校水卡为M1卡,于是就开始实践。

工具:

硬件:ACR122U-A9、UID白卡、待破解水卡
平台:Windows 10
软件:M1卡服务程序、UID卡读写工具、BeyondComparePortable

步骤:

1.安装驱动程序

ACS官网下载ACR-122U的驱动程序,然后安装。
安装完成后,在“程序和功能”中你可以看到它:
此处输入图片的描述

2.破解水卡

把ACR-122U连接电脑,打开M1卡服务程序,选择你的读卡器,把待破解水卡放上读卡器,此时读卡器指示灯变黄。点击开始破解,等待破解完成 。
此处输入图片的描述

然后你可以在存放M1卡服务程序的文件夹里找到一个DUMP类型的文件。

此处输入图片的描述

然后消费水卡,使水卡的数值改变后,重复以上破解步骤,得到另一个DUMP文件。
此处输入图片的描述

3.数据分析

BeyondComparePortable16进制方式打开两个DUMP文件

此处输入图片的描述

发现两个文件的数据变化的地方,这也就是水卡存储数据的位置。

81 15 12 34 56 78 00 05 20 42 00 00 00 00 00 00
4F 89 27 00 FF FF FF FF FF FF FF FF FF FF FF FF
50 88 27 00 FF FF FF FF FF FF FF FF FF FF FF FF
AF 19 98 BF 02 17 FF 07 80 69 FF FF FF FF FF FF

查看水卡数据发现,此水卡加密比较简单,余额直接使用十进制表示:

50 88 27 00 FF FF FF FF FF FF FF FF FF FF FF FF

50 88 27 表示此卡余额为27.88元,50为校验码。

仔细比对发现次校验码的加密方式为:

余额的整数位和小数位的第一位相加,然后用15减去此值,得到的结果转换为十六进制,得到校验码的第一位,此例中:2+8=10 , 15-10=5, 5转换为十六进制为5,得到效验码第一位;而校验码的第二位计算方式同第一位,8+7=15,15-15=0,0为校验码的第二位

注:有时整数位和小数位的第二位相加的值大于15,15减去此值得到负值,此时校验码第二位要向校验码第一位“借一”,变为15+16=31。如:

4F 89 27 00 FF FF FF FF FF FF FF FF FF FF FF FF

校验码第二位:7+9=16大于15,所以15“借一”变为15+16=31,31-16=15,15转换为十六进制为F,得到校验码第二位;校验码第一位:15-(8+2)=5,因为被“借一”5-1=4,转换为十六进制得到校验码第一位。

仔细观察数据,会发现,此卡有两组数据存储余额,要修改卡上数据只需先修改一组,然后另一组小数位第二位在此基础上+1或-1
4F 89 27 
50 88 27

4.修改数据,制作卡片

打开UID卡读写工具载入读卡器和DUMP文件:

此处输入图片的描述

发现数据储存在14扇区2、3块,双击修改数据。

此处输入图片的描述

把UID白卡放上读卡器,载入卡片,点击复制卡片,等待复制完成。

此处输入图片的描述

参考资料:

RFID入门:Mifare1智能水卡破解分析

RFID安全:一次M1卡(洗澡卡、开水卡)破解历程

【原创】某M1卡的数据结构分析

S50非接触式IC卡性能简介(M1)


最后要感谢一只可爱的胖子提供的设备!

文章作者: 大巴斯基
文章链接: http://nieblog.me/2016/09/03/FRID-破解学校M1水卡/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CodeTrainer