现在网上常见的设备大都是ID或是IC卡的研究设备,很少见到有关磁条卡的文章,其实磁条卡在我们日常中也是一种十分常见的卡,例如一些店的VIP卡·储值卡和一些门禁卡等。所以我们今天就来聊聊一个关于磁条卡安全的设备Magspoof
一.关于设备硬件上的一些想法
关于Magspoof这个设备的制作者是一位在Youtube著名的硬件黑客samy kamker的项目,是以教育为目的而在github上开源的项目,这个项目可以通过一个简单的编程完成磁条卡的模拟,这里是项目地址https://github.com/samyk/magspoof
这个项目仅仅用到了一些电容电阻一个驱动线圈和一个tiny单片机就完成了,我在github上将文件下载下来后。惊喜的发现居然有画好的pcb开源,打开一看就是这个样子
依照这个硬件上看,芯片的封装很大,线圈与板子不在一起,还要外加电源电池,这就很麻烦了,拿这个去测试就很显眼了所以就想为什么不把设备画成卡片呢?说干就干……….其实画起来很容易换个封装改个接线加点自己的创意,唯一麻烦的可能就是线圈了吧。下面这张图是我自己画的板子
在板子的后面加了2032电池片方便供电,自己感觉还不错。嘿嘿
漫长的打板,买元件焊接。焊接没有热风焊真的很麻烦。因为电池片的面积大受热不均很难焊接,下面是我焊接好的成品
硬件部分的修改就是改了外形加了供电将线圈与其一体化,方便携带与使用。
二.烧录器上的问题
因为硬件是tiny单片机所以烧录器用的是usbtinyisp,在某宝上看到了一种用attiny44制作的小型isp挺有趣的打算试一试
结果这个小玩意的相关文件少的很,在测试的时候怎么也无法上传,随后我注意到硬件上那两个焊点,打开了SJFAB后可以正常使用了。当然为了方便也可以直接用普通的usbtinyisp或是arduino系列的其他板子。
三.编辑程序与上传
编辑程序
程序原文件是个c语言文件,直接复制到arduino上,找到程序里关于磁轨号码的部分
修改这个就是修改需要模拟的磁条卡的卡号,程序只支持两个磁轨,更多的可以自己添加。就是如下两行
"%B123456781234567^LASTNAME/FIRST^YYMMSSSDDDDDDDDDDDDDDDDDDDDDDDDD?\0", // Track 1 ";123456781234567=YYMMSSSDDDDDDDDDDDDDD?\0" // Track 2
按照这种格式自己随便写一个测试一下,就像这样直接替换就行,上图所示
"%B1234444444444444^ABE/LINCOLN^291110100000931?\0", // Track 1 ";1234444444444444=29111010000093100000?\0" // Track 2
下面的变量是来调节卡片传输速度的
#define CLOCK_US 200
200只能刷出第二条轨道,改成120能刷出第一条轨道。这个程序只是支持两个轨道,还有很多的磁条卡是三个轨道的,如果自己想添加到也不难。
程序上的修改到此结束
上传
先要在首选项里设置开发板下载地址如下图
添加的管理地址如下
在工具》开发板》开发板管理器里搜索attiny关键词,并且选择安装
下载安装完成后选择对应的板子,为了性能好一点所以我用的是attiny85,因此以下用的都是attiny85。
选择attiny85处理器并且设置频率为8mhz,如下图
选择编程器为USBtinyisp
最后编译一下代码无误就可以开始上传了
上传成功我们就开始测试
三.测试
首先我们需要一个刷卡机例如这样的,这种是没有键盘的,带不带键盘都不影响测试
板子上的电池要选用2032的3,6v锂电池普通3v的2032电池不足以供电
刷卡测试
没问题,可以看到按下按钮是在记事本上输出了两个磁轨的内容。
四.发现的一些问题和改进的想法
当然还发现了画的板子一些问题与不足,第一点就是信号的问题,感应距离近,与原作者在视频中演示的相差不少毕竟板子的厚度有限,不能直接盘铜丝,改进很容易再画匝线圈就会更好了。第二点就是烧录器问题,用isp接口编程会在板子上留有排针,携带的时候多少有不便,况且还要准备烧录器不如将编程器画在板子上,然后留下micro接口。第三点就是上穿程序的问题,每次改号码都需要用电脑操作很不方便,不如用2.4g的蓝牙或wifi改卡方便。总之还有很多好想法等待实行,我也会抽时间陆续改进。
最后是一张合影~
来源:freebuf.com 2020-11-01 15:14:17 by: piptsmile
请登录后发表评论
注册