RFID开发之圣诞老人无稽之谈

  • A+
所属分类:逆向工程

0X01圣诞节的由来

因为个人爱好对智能卡有一点点皮毛的学习。

年初的时候有个做智能卡黑产的朋友找到我,说他接了一个学校的单子,让我帮他写个可以Modify Data的程序(他手上的软件只可以复制卡),年初的时候需要做毕业设计,没空没帮他看。


过了几个月,他把读卡器(0FC3读卡器。支持mifare1、S50、S70、SHC1102、mifare Ultralight、mifare light,具有二次开发功能)寄给了我,这样我不帮他也不好推辞了。。。

RFID开发之圣诞老人无稽之谈

RFID开发之圣诞老人无稽之谈

RFID开发之圣诞老人无稽之谈

RFID开发之圣诞老人无稽之谈

0X02收集孩子们的需求

工具:

一个读卡器,说明书,还有几张激活了的可以正常使用的Mifare 1 S50卡(非接触式卡,IC卡,高频卡,工作频率13.56MHZ),OFC3读卡器的二次开发接口(ICCard_Seat.ocx)。

拿到手上首先连接PC接通读卡器,USB接口,有报警灯/声,接通电源会DI一声。


进入RFID开发正题!
开发环境:Winxp+VS2010+c#+.NET框架

0X03开始准备圣诞礼物

开发步骤:

将ICCard_Seat.ocx和MSCOMM32.OCX拷贝到C:WINDOWSsystem32,CMD命令运行注册COM组件。
regsvr32.exe "C:WINDOWSsystem32ICCard_Seat.ocx"
regsvr32.exe "C:WINDOWSsystem32MSCOMM32.OCX"

RFID开发之圣诞老人无稽之谈

RFID开发之圣诞老人无稽之谈

注册完COM组件后,新建Winfrom项目,添加引用COM组件,即可在项目中引用封装好的方法,实现方法即可。


首先测试读卡器是否正常连接串口。
接下来测试读卡器的最基本功能,看看是否能正确读取卡内数据。

以此开发的S50此卡为例,S50共有16个扇区,第 0 扇区中只用到块0,用于准确读取卡号。


我在这里使用了北京市政公交卡,在没有Key验证的情况下还是可以正常读取到卡号,卡号区一般不加密!
卡的第一道安全防护为卡得验证密码:如果验证密码不匹配,那么接下来的所有操作都不会进行,也不可进行。


验证卡密码:卡密码是大家最为关注的,如何得到,或者解开卡得密码是所有的关键.

因为朋友已经用ACR122U自行解开了卡得Key,我这里就不再赘述。

对于RFID安全性感兴趣的请移驾radiowar wiki自行阅读增长姿势。


几乎每次对卡的读写操作都必须先验证卡密码,才可以进行下一步操作。

S50有16个扇区(0-15扇区),每个扇区有4块(0-3块),每块16个字节,每个扇区的块0、1、2为数据块,用于存储数据。


每个扇区的块3也就是第四块为本区的控制块,前6个字节用于保存KeyA,后6个字节用于保存KeyB,中间剩下的字节用于存取控制。
每个扇区的密码和存取控制都是独立的。

如果你想对此区做读写操作就需要先验证该区的密码,密码长度为12个字符。


将整个卡得结构分析为64块,例:0区0块即为块1,4区3块,即为块16.大概初步了解S50卡得结构,那么我们进行“详细”的数据分析。
以下的数据是基于多张S50卡,同样结构,不同数据的分析而得出的。
朋友告诉我卡内的余额为100元,12年7月13日开的卡,个人密码为888888


以我的S50卡为例,读出块22的数据为1207132207136C696C69616E88888800
我们不难发现120713,220713这个为日期格式。:(-所以对于数据要敏感。


经过多次刷卡变化的数据,发现了块28一直变化,即第7扇区的块0
E803000000000000EB00640001003B02
E8030000 这里涉及到网络传输字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。


关于高低位字节序,这里不多啰嗦。

E8 03 00 00倒序为00 00 03 E8,转成10进制即为1000,通过对比另外几张卡发现这里的金额精确到0.1。


所以,所有的金额都是比原来的大10倍即个位数是 0.1元这个位置即角。十位才是1元,
所以 100元,我们的数据表示是 1000。

这时候心血来潮了,让朋友更改了金额为DC05000000000000EB00640001003B02(150元),然后去刷卡试验。

结果得到的是:卡上还是100元,并且消费机会报警声。

那究竟会是什么原因导致此次实验失败呢(此处为智能卡的第二道防护)?


天色已晚,今天是圣诞节,老夫得赶紧为孩儿们准备圣诞礼物。这究竟是圣诞老人的有Ji之谈还是无Ji之谈?各位看官尽情发表观点。



本文始发于微信公众号(T00ls):RFID开发之圣诞老人无稽之谈

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: