在学校免费喝水


文中包含PN532和串口转USB在linux下的使用nfc-list的方法,不包含破解水卡的内容


学校就是一个大坑,要去开水房打水还必须等到星期三才能充值,每天充值的窗口都是人,排队真tm累。

后来想想,大不了就试试破解吧!

研究了一下水卡要专门在卡上开一个户(我的直觉就是在一个扇区上开),加上开水房没有网线,所以肯定是卡上离线内容,所以不用害怕。

Jason推荐我买ACR122,但是我觉得太贵了,但是我贪小便宜买了国产易火眼的ER302,但libnfc根本不认识这个玩意儿,然后研究了一下libnfc的支持列表,最后花90买了一个PN532和一个USB到UART的转接器(其实还可以更省钱,只要直接用普通的串口转usb就行了)。

P_20160402_182410.jpg

但是接上电脑,发现用nfc-list,还是不认。

Screenshot_2016-04-02_18-28-15.png

然后我用nfc-scan-device -i查找闯入设备,总算找到了。

Screenshot_2016-04-02_18-28-29.png

然后跑去nfc-tools的wiki上看了一下,找到了有关配置文件的内容。然后我就跑去/etc/nfc创建了一个libnfc.conf(有些系统可能自带这个配置文件,我是连nfc目录都没有,自己建的),输入了如下内容:

allow_autoscan = true
allow_intrusive_scan = true

打开了闯入设备的扫描选项,所以现在不需要进入加-i选项就可以扫描到了。

Screenshot_2016-04-02_18-33-05.png

但是我不喜欢让这个设备成为“闯入设备”,配置文件的wiki上还有一个内容,就是在/etc/nfc/devices.d/这个目录下可以自定义设备。首先在libnfc.conf里把allow_intrusive_scan改成false(不改也没事的),在devices.d下新建一个配置文件,就叫pn532.conf(此处名字随意)。输入以下内容

name = "PN532_UART"
connstring = "pn532_uart:/dev/ttyUSB0:115200"
optional = true

connstring要改成你nfc-scan-device -i中找到的那个。举个例子,我执行命令后返回的是

soha@Soha-02Laptop ~/xueXiaoFanKa % nfc-scan-device -i  
nfc-scan-device uses libnfc 1.7.1
1 NFC device(s) found:
- pn532_uart:/dev/ttyUSB0:
    pn532_uart:/dev/ttyUSB0:115200

所以我写的是pn532_uart:/dev/ttyUSB0:115200

保存以后,应该就能当作正常的设备使用了。

接下来就是跑密码了,运行mfoc -O xxx.mfc,其中xxx.mfc是dump出来数据的存储地址。

Screenshot_2016-04-02_18-40-40.png

在旁边放一会儿,很快就找到了密码并且把数据dump出来了。

Screenshot_2016-04-02_18-42-03.png

Screenshot_2016-04-02_18-42-48.png

然后找出水卡扇区的规律,就可以自己改价格啦!


注:本文根据 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License 进行授权。

标签: nfc mfoc pn532


撰写新评论

account_circle
mail
insert_link
mode_comment