最近看了很多破解M1的文档,无意发现学校水卡为M1卡,于是就开始实践。
工具:
硬件:ACR122U-A9、UID白卡、待破解水卡
平台:Windows 10
软件:M1卡服务程序、UID卡读写工具、BeyondComparePortable
步骤:
1.安装驱动程序
从ACS官网下载ACR-122U的驱动程序,然后安装。
安装完成后,在“程序和功能”中你可以看到它:

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

然后你可以在存放M1卡服务程序的文件夹里找到一个DUMP类型的文件。
然后消费水卡,使水卡的数值改变后,重复以上破解步骤,得到另一个DUMP文件。

3.数据分析
用BeyondComparePortable以16进制方式打开两个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白卡放上读卡器,载入卡片,点击复制卡片,等待复制完成。
参考资料:
最后要感谢一只可爱的胖子提供的设备!




