Ap Blog

Cold code, warm soul.

@Aploium3年前

05/10
01:09
RFID

浙大校园卡内部数据结构与机制研究(05-27更新)

之前发了一篇实用性的(给小白的)浙大校园卡克隆技术,这篇讲原理性的,非电白预警的样子  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

浙大校园卡数据结构表v1.1

浙大校园卡内部数据结构与机制研究(05-27更新)

  1. Pingback 浙大校园卡克隆(阳光体育打卡用) | Aploium的窝_A Blog

    1. Aploium 文章作者
      Google Chrome 43Google Chrome 43Windows 7Windows 7

      所有M1卡都是加密的…..只不过加密算法上有漏洞…..可以获知密匙

      回复
    1. Aploium 文章作者
      Google Chrome 43Google Chrome 43Windows 7Windows 7

      我买的是ACR122u这个型号的读卡器(白色的,x宝上160多块一只),其他读卡器理论上也可以…….
      还需要UID卡(允许擦写UID的,大概2块一张)
      软件的话可以向我要
      (话说你是谁)

      回复
  2. saber
    Firefox 45Firefox 45Windows 7Windows 7

    支持NFC的手机(mi5)可以写入卡吗?或者把手机克隆成一张卡?

    回复
  3. 旱树
    Google Chrome 60Google Chrome 60WindowsWindows

    请问一下lz是用什么手机写入的,我用的锤子M1L死活没法写入0-0区块

    回复
    1. Aploium 文章作者
      Google Chrome 62Google Chrome 62WindowsWindows

      当年是三星S5 不过还是建议买个读卡器吧, 那个比较好使

      回复

来一发吐槽叭O(∩_∩)O    仅首次吐槽时需要审核