声明
此文章纯属我想象出来的 :)
准备工作
前提条件
我讲述过程中水卡余额是在饭卡中的,最近水卡系统升级,所以等下的第一次破解指的是升级前,第二次破解指的是升级后
预备知识
学校饭卡或水卡一般使用S50或S70卡,前者容量只有1KB,后者有4KB,当然在复制的时候有些许区别,后面会提到
工具及软件
ACR122U-A9,nfc-mfclassic,S50白卡(第一次破解用到),S70白卡(实际没有用到,但必须尝试)
判断是否能破解
我个人认为只要是S50或S70且水卡机没有联网就可以破解
破解思考
直接修改饭卡里的水卡数据肯定是不行的,假如你某一次吃饭时水卡余额还有10元,饭卡机是联网的,有可能会备份信息,然后你修改了水卡钱,结果下一次吃饭时水卡金额对不上,少了不会什么关系,但如果多了,而且你没有进行充值,会立刻别发现.
上面说了直接修改是不行的,那么我们就需要把数据弄到另一张卡上面去.也就是复制卡,你可能听说过S70没有复制卡,这个等会说
第一次破解
最开始水卡数据直接放在前1k数据区,这就让我可以用软件破解数据后放到另一张卡上去了,这太简单了,S50卡是连第0block修改的
第二次破解
升级之后水卡数据在1K-4K的位置了,我刚开始想的肯定是和第一次一样,把4K数据全部弄出来,再写入S70中
但失败了
我猜测新的水卡机程序可能会验证最开始的数据,因为我的货源和学校卡货源不一样,就必定导致前几位不一样,这怎么办?
这时我突然想到我可以挂失自己的卡,这样我就可以得到一张前几位一样的白卡了,加上水卡机不连网,我老卡可以为所欲为
当然我很快就成功了
注意点
在进行S70卡写入数据时,不能使用windows下那个你们常用的软件
需要使用linux上的nfc-mfclassic才能写入1K后面的数据
补充
安装nfc-mfclassic
sudo apt install libnfc-bin
去官网下载驱动,直接下deb包即可
每次运行nfc-mfclassic前需要运行
sudo modprobe -r pn533_usb
sudo modprobe -r pn533
破解
破解卡(不是所有卡都能破解)时需要使用mfoc
mfoc的安装非常麻烦,如果编译时看到下列提示
syntax error near unexpected token libusb,
并不是真的代码错了,而是需要安装libusb,如何安装请google
期间可能会有多个软件需要自行编译安装