@Aploium4年前
05/10
01:09
之前发了一篇实用性的(给小白的)浙大校园卡克隆技术,这篇讲原理性的,非电白预警的样子 m(._.)m。
不过有个好玩的图可以先放在这。
校园卡在强光穿透下的照片

浙大校园卡透视
可以看到里面的线圈和芯片
在机制上目前已知的东西
具体每个字节的意义见文章末尾表格
- 每次刷卡都一定会连接服务器端确认数据(如是否冻结)。我的卡在被冻结以后就无法在洗澡龙头那里刷出来了。
- 卡的密码有两份存储,卡上[0x96 0x97 0x98]和服务器端,正常仅读取卡中的密码,仅当补办卡时会对新卡写入服务器端密码。
- 金额则有三份存储,卡中一份、服务器端cache
- 卡中:在卡消费时被读取和改写,被加密,算法目前无法破解
- 服务器cache:余额可以在网上被查到,此余额我叫它cache是因为它 等于最近一次消费后卡中的金额 。即不管卡中金额是多少,服务器cache的金额都会根据卡中的金额被赋值,注意是赋值而不是根据消费/充值额增减。
- 服务器对账:每星期四23:59:59(避免歧义),服务器会重新将上次对账时卡的余额累加上这星期卡的消费/充值,得出一个正确余额,并和服务器cache值对比,若两者相差过大(阈值在15元左右),则冻结卡! 这个时间点是从卡服务部那里侧面问出来的,那天我因为测试原因刷了50块的坏账,当天晚上就被冻结了(正好星期四…sad….)
- 结论就是,从已知的信息来看,不能用校园卡来刷钱。
- However,那天我有很多除余额坏账以外的非正常刷卡,比如说一小时洗了40多次澡233333,有可能被冻结是多个因素的综合结果。
- 门禁、体育打卡机(固定和移动) 都 不读取卡内数据,而只根据卡UID来识别用户。这条也是那篇浙大校园卡克隆文章的理论依据。
- 只有UID的空卡不能用来付钱和充值。(猜想)若多次试图刷空卡付钱,可能会导致冻结。
- 有一种不需要接触卡就能得知卡UID的简便方法,为避免滥用,此方法保密。
- 每次在POS机上付钱时不仅会改变4个[0x80 0x81 0x8C 0x8F] 余额记录字节,也会改变[0x88 0x89 0x08A]这三个字节。
- 但是洗澡机上刷卡并不改变后者三个字节。
- (猜想)可能是记录刷卡序号一类的东西,可能和对账有关。
- 每个人的卡区块密码都不一样
- 除了扇区15的KeyA都为”synpub”的ASCII码。但是有一个室友的卡里没有扇区15……真诡异。我试过删除自己的扇区15,卡各种功能都正常。
浙大校园卡数据结构表
目前的结果,这个是我这几天一个个试(以及猜)出来的结果。
由于我只有寝室四个人的校园卡样本,所有有一些字段(如记录学园、专业、是否是本科生之类的)无法弄清楚。

浙大校园卡数据结构表v1.1
浙大校园卡内部数据结构与机制研究(05-27更新)
更多文章
-
Pingback 浙大校园卡克隆(阳光体育打卡用) | Aploium的窝_A Blog
-
Google Chrome 31
Windows 8.1 x64 Edition
-
Google Chrome 43
Windows 8.1 x64 Edition
请教一下读卡器用的什么,x宝上的rfid读卡机就可以吗
-
Safari 9
Mac OS X 10.10.5
-
Firefox 45
Windows 7
支持NFC的手机(mi5)可以写入卡吗?或者把手机克隆成一张卡?
-
Google Chrome 60
Windows
请问一下lz是用什么手机写入的,我用的锤子M1L死活没法写入0-0区块
浙大卡也不加密,怎么明码就裸奔了。