警告:本贴只做技术研究与测试,一切不当后果与本人无关,以此牟利需要承担法律责任!
技术贴,谢绝喷子吐槽! 原创技术贴,请勿转载!
网上关于卡的科普并不多,了解它的也不多,最近学到了一些卡的知识,所以我实践一下,把技术和经验分享出来
芯片卡分为IC卡、ID卡和CPU卡,其中可以加密的是后两个
ID卡只有卡号,最多的技术就是模拟和复制
CPU卡型号繁多并且内部有单片机,依靠硬件加密,研究难度较大
而IC卡种类较少,比较经典,研究很有意义
作为一个在学校“闲不住”的人,总想搞点事情,就拿水卡开刀吧!
学校教学楼和宿舍每层都有饮水机,可以接凉水或开水,不像家里的直接可以用,需要刷水卡
这就是读卡器,刷卡出水,抽卡水停,上面有个5位数码管,显示金额
出水一定量时会减0.02元,接一杯水大概不到1毛
我们学校的水卡
当然学校里也有专门冲水卡的地方,一台机器水卡放上面输入数字就可以加进去了。。。。
既然想要搞水卡,就要知道它的工作原理
用手电筒透过卡照,可以看见一个芯片和线圈
这就是大名鼎鼎的M1卡
我们日常生活中,它无处不在,公交卡、饭卡、水卡、考勤卡、会员卡、一部分的门卡······它们都是
M1卡是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,符合ISO14443A标准,常用的有S50及S70等等。S50容量1KB,S70容量2KB,其他都一样,最常见的还是S50卡
它的工作方式是读卡器提供能量,卡和读卡器交换数据
运用到了电磁感应原理
射频频率为13.56MHz
卡的操作步骤如下:
首先寻卡,有两种模式,寻找全部和寻找没有休眠的卡
然后是防冲撞,会获得一个4字节的卡号,全球唯一的,并且不能修改,除非是UID卡
接下来是选卡,需要提供一个卡号
完了是验证密码,密码有A、B两个,是6字节的,验证那一个是控制位决定的,默认密码全是FF或00
密码正确就可以进行操作了,操作分别有,读取、写入、减值、加值、复位和休眠
数据结构是这样的:
一共有16个分区,每个分区有4个块,一个块16字节,一共就是1024字节
它的存储并不像EEPROM那样,全部都是数据,里面有一些特殊的结构
特殊之一,0区的0块是不能更改的,前4字节是卡号,后12字节是工厂数据,出厂时已经写入,但是UID卡可以修改
特殊之二,每个分区的第4块是有6字节的密码A,中间间隔4字节的控制位,后面是6字节的密码B,固不能存放普通数据
特殊之三,有一种特殊的数据格式叫做值块,长度是16字节,可以放在任意一个普通的块中,作用是记录数字,可以直接用命令就可以加减,当然也可以和整数互相转换,范围是从0-65536,这是本篇最重要的
密码可以为任意数据,但是没有解密不能读取
控制位可以设置每个块的访问权限,可以做到双加密或分加密
默认就是FF078069
就是块0、1、2的读取、写入、加减值都是密码A
块3出了读取密码外全是密码A,密码不可读取
那么可以用的数据就是1024-1*16*16-16=752字节
——————————我是分割线—————————
下面开始技术操作
需要的硬件是读卡器ACR122U
需要的软件有这些,ACR122U的驱动、M1卡服务程序、HEXEDIT、207 mifare oper
首先安装驱动,选择系统,64位的装X64版
点击Setup.exe安装
一直点下一步
安装成功
最后把卡放在读卡器上
go on