前言

  本文算是写过的第一篇技术文章,于高二下学期。当时发帖于贴吧,但由于一些原因被迫删帖。现在搭建好了个人博客,便想修改一下将此文作为本博客第一篇文章。   高二时期,由于学校每月返还四元的的水费不够用,加上看到别的同学因系统错误而偶然获得的两张九万多的水卡,便驱动着自己去对此暗暗了解一番。 以下为原帖内容,少数文字被修改

原帖

  在学校上了两周课,回到家后在网上找了又找,发现关于破解IC卡的文章真是不多,凑凑乎乎不过那十几篇,不过经过一段时间的努力,大体了解了IC卡的内部构造原理,现在可以任意修改里面的水费啦!注意:只是水费……(原因后面说)

开工

  闲话不说了,下面是破解过程和一些教程。

  首先我们要有一台可以读取IC卡的读卡器,像咱们学校卡务中心的那样的。

  

  理论上这个机器是可以的,但是由于网上缺少对此机器的软件支持,只有一些简单的读写软件,没有破解之类的,所以会对密码的破解造成很大的难度。而且这类读卡器不是USB接口的,是平常很难见到的串口接口,像学校旁边的那些网吧因同行竞争都换成了一体机,根本找不到这类接口,(安居那边的传奇网吧有这个接口,但是网吧最近好像倒闭了)而家里的电脑也一般不配备此接口。虽然可以再配一根USB转串口的转换线,但是还是很不方便!因此我们选择下面一款软件支持较多,同时网上许多大神都用的一款机器:ACR122U。   

  接入电脑后,有的可能需要安装驱动,这里说一下学校旁边的红客网吧不能用,因为驱动装不上,再旁边的第六感就可以!但是第六感的电脑对后面的一款用到的软件又不兼容……

读卡器连接电脑

  如果驱动安装成功,读卡器会亮红灯,放上卡片时亮绿灯

运行M1卡服务程序

  

  该软件设计非常简单,只有一个按钮,开始破解,那我们就开始破解喽~第一次对卡操作的时候需要的时间有点长,大概三五分钟,以后再读取同一张卡的话就会很快的!

文件修复

  完成上一步骤后,会在M1卡服务程序统计目录下得到一个数据文件   

  该文件是以IC卡uid为名字的1kb的dump格式文件,但是这个是不能直接使用的,我们需要用另一个软件NFCGUI-Pro将此文件修复成大小为4kb的文件   

  使用时直接将dump文件拖拽进去就可以,软件会自动将其转换。

分析数据

  上一步骤得到的修复后文件,其中文件信息内显示的就是我们卡里面的数据,关于IC卡的结构,我们简单说一下,IC卡内一般有从0到15共16个扇区,每个扇区都有独立的密码,每个扇区都有0到3共4个段,每张卡还有一个全球唯一UID号在0扇区里。我们的校园卡,在0、1、2、3、14号扇区加了密码,并且里面有数据,其他扇区无数据为默认密码。我们将这几个扇区的数据提取出来。

  在这里面数据都是以16进制储存的,并且是倒序放置,经过分析,水费数据存在于14扇区,将他们再提取出来看看,我这里综合了四张卡的数据:   根据在学校水房机器上的显示的余额,172612,转换为16进制就是00AC0264

  

  又因为是倒序排列,所以转换为AC00、6402,正好与14扇区前四位吻合!根据网上其他人的介绍,这些数据和后面的几位是有联系的,就像身份证上的校验码,而且很复杂,如果我们不知道他们在设计时的算法的话,很难琢破解。于是我在这里纠结了一整天,找前四位与后面数据的关系,甚至分析网上别的人的数据来寻求共同点。

  

  忙了一天都没有找到他的算法。就在我认为注定失败的时候,同学说会不会根本就没什么联系,我说应该不会吧,别人的都有啊。可是事实是,咱学校的真奇葩,他偏偏没有任何联系……在那个星期回学校试刷了之后,果真不需要修改后面的数据! 所以我们直接进入下一步。此时打开另一个软件WinHex ,将修复后的dump文件拖进去。   

  找到第14扇区0段和1段,也就是390和3A0行。

  

  我们将要修改成的数据转换为16进制然后倒序排列,就可以了!比如88.88元,十六进制就是22B8,倒序就是B822,修改后保存就可以了!

写入数据

  写IC卡的软件比较多,个人觉得下面这一款比较简单好用:

  我们直接将修改后的dump文件拖进去,点击写卡就OK了,速度很快的。

  

​ 至此,一个任意水费的校园卡就到手了,妈妈再也不用担心我上火了……

一些声明

  在网上收集资料的时候发现有一个神奇的手机软件Mifare Classic Tool,该软件需要NFC支持,用这个软件在破解完密码,将dump文件直接丢进手机里,直接可以在手机上操作,然后用手机直接写入。

  接下来我们说一说前文提到的不能修改饭钱的原因,主要有两点,一是咱学校的水费系统是不联网的,也就是说水房每个机子并没有后台控制,数据是离线的。而我们的饭卡系统,则每台都有网线连接着,后面有着储存我们数据的终端,修改了数据不一定可用,也有可能不像上边那样简简单单的只改四位数据。第二点呢,就是水费我们是不需要现金充值的,而饭费需要我们现金充值,这也许会触动法律了~搞不好就不能在一块玩耍了……

  所以大家满足于水费就可以了 ~

  还有一点,修改后的卡如果拿去卡务中心想着再返一次水费,那么恭喜你,水费会变为几块钱十几块钱。。

  还有如果有错误的地方,希望大家指出,欢迎交流哈。

  本帖仅供学习交流,技术研究之用,请勿用于非法用途,否则后果自负。

后记

  本文写于高二时期,当时贴吧反响不小,但被学校校园卡中心的人盯上,本人校园卡被冻结。随后被班主任与教务处主任、分管校长约谈,告诉我学校每月四元的水费是教育局拨款,我这样做是不对的,然后让我删除了帖子,并保证不再继续此类活动。最后此事才得以平息。

  本文发表与此,只是做技术交流之用。对于各大高校的饭卡、水卡的系统任何破解行为,都是违法的!各类相似事件也是层出不穷。。比如 这一个北邮的童鞋

  所以希望大家,不要贪图小便宜,虽然技术无罪,但人心不要可耻。