前言:
现在朋友们对“m1卡加密算法含有检验位”可能比较讲究,姐妹们都想要剖析一些“m1卡加密算法含有检验位”的相关知识。那么小编同时在网络上汇集了一些对于“m1卡加密算法含有检验位””的相关资讯,希望看官们能喜欢,各位老铁们快快来了解一下吧!本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:spiderkk
前言:
很早就买了PN532,话说这个读卡设备还是从大妈上值友的回复中认识到的,所以说认真看回复还是很重要的,好多经验之谈就在里面。从订单日期可以看到是19年5月下的单,到今天时隔1年多才想起来写足可见懒癌晚期的不可救药。大妈的社区类似的文章也有不少,不过看后感觉有些还是简单了,对于小白来说,在实际操作中可能会遇到不少莫名其妙的问题,所以又厚脸码了这篇,过程记录的相对精细写,一方面方便小白学习,顺便骗一些经验和金币
,那么下面就开始吧。
流程:
这就是大概流程,应该适用各种带NFC功能的手环,目前已测试过小米手环3,和小米手环4,都没问题。
实作:
在复制加密的门禁卡之前,需要准备好以上工具,PN532时必不可少的,带NFC功能的手环,门禁卡,还有一个过度用的CUID卡。
M1卡:0扇区不可以修改,其他扇区可反复擦写,我们使用的电梯卡、门禁卡等智能卡发卡商所使用的都是 M1 卡,可以理解为物业发的原卡。
UID 卡:普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。
CUID 卡:可擦写防屏蔽卡,可以重复擦写所有扇区,UID卡复制无效的情况下使用,可以绕过防火墙。
FUID 卡:不可擦写防屏蔽卡,此卡的特点0扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。
UFUID 卡:高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。
这里贴一段百度来的普通IC、M1、UID、CUID、FUID、UFUID卡的区别,一般在购买PN532时会捎带几张IC卡,店家会根据你的需要进行推荐,不过也有不说的,买错了就麻烦了。这里个人推荐购买CUID的,简单些说就是可以反复擦写,并且可以写入0扇区。
第一步,读卡,这里将PN532接入电脑,用的是串口转USB的方式。记得要先装驱动。
软件使用的是卖家给的NFC-上位机,配合PN532进行读卡写卡都挺好用的。还可以修改数据。运行前如果已经接入PN532,并挂好驱动后,会显示发现NFC设备。读卡的选项有四个,这里第一次使用直接选择读取卡片内容即可。还可以读入之前保存过的DUMP文件进行修改。
因为是加密的门禁卡,读取时需要采用穷举法来尝试KEY,所以读卡时间不定,有时很快,有时又特别慢,如果10分钟还没有读出来,可以关掉软件,再次打开尝试继续读取。从动图可以看出来,在读取扇区8的时候,发现了有密钥,所以开始了穷举法尝试。
经过一番努力,IC卡数据读取出来了,既然说到这里,就大概说一下这些数据吧,整个ic卡分为16个扇区,从0开始计数到15,每个扇区4行即4个块,每行(块)有16个字节,每个字节是两位16进制的数字构成。看起来很简单吧。然后0扇区的第一行是记录卡号和厂家信息的。好多门禁都是简单的靠识别卡号和厂家信息来进行开启的。其他扇区都是空的,这样的卡,小米手环的模拟功能可以直接模拟出来。
再看一下这个数据,前面读卡的动图已经提示过,在扇区8发现了加密,那这个加密是怎么回事?前面说过每个扇区有4行(块)前三行是写入可读数据的(绿色块),最后一行就是留给密钥的(红蓝黄色块)。如果是加密卡,会在第四行写入密钥,第四行也有分块,分为密钥A/存储控制位,备用位和密钥B,一般无密钥的数据,密钥A和密钥B都会填上FF,而存取控制和备用位则是FF078060,这个可以从上图中其他扇区对比看出。扇区8的密钥A/B位都有数据,这个就是这个扇区的密钥,是PN532通过穷举法尝试出来的,只有密钥正确,才能读出前面三行的数据。加密行有密码的情况下,小米手环就无法读取,在进行检测的时候就会提示加密卡,无法复制。(当然,如果只是绿色的数据区有数据,而密码区无数据,这样的卡就是未加密的,小米手环也可以模拟出来。)现在我们要解决的就是上图中加密去有密钥的门禁卡的复制。
先要保存读取好的数据,这个上位机的软件保存方法比较特殊,在菜单中并没有选项,只有双击扇区左侧的小三角,才会弹出保存的对话框。选择保存位置,输入名称后即可保存。保存的文件格式是dump的。
然后我们先修改一下加密数据,用默认的空数据替代密钥,上面的动图可以看出来,先复制了7扇区1行的数据,对8扇区1行进行粘贴替换,然后复制了7扇区4行的空密钥,对8扇区的密钥行进行替换,这样就将IC卡的加密数据清除,可以用小米手环直接进行复制模拟了。这里需要注意的是,双击需要修改的行,软件上面会显示出该行数据,粘贴后要按ENTER键进行确认数据修改,不然数据是不会变化的。
修改好,保存一下,起名可以在末尾加个空字代表是没有数据的卡。
然后将准备好过度用的cuic卡放到PN532下面准备写卡
这里要注意一下,写卡之前要先读卡,这是为了让PN532识别写入卡片的类型。然后点击写整卡,选择刚才做好的空文件写入即可。
接下来就是在手机上进行门卡模拟了。将过度卡和小米手环放在一起,打开小米手环的APP,选择门卡模拟。
这里要选择门卡模拟
然后是检测是否支持模拟
因为是只有卡号和厂商的空卡,很快就通过检测,可以进行模拟了。
大概需要1分钟左右吧,对了模拟前APP会提示让你上传身份证信息,拍照上传身份证后才能进行模拟。估计是为了避免复制卡做了非法的事情,所以一定要遵纪守法才行。
模拟成功后会提示输入卡的名称,小米手环可以模拟5张卡,所以靠名称区别还是比较重要的。
接下来将将小米手环放置在PN532下面,用上位机软件读取,即可获得刚才复制的空门禁卡信息,选择写整卡,然后选上之前完整的IC卡信息文件,进行写入即可。 这时小米手环中的模拟IC卡信息就完整了,可以用于开门。
总结
这样的方法对于小米手环3和手环4都适用,原理也很简单,就是先做一张小米手环能模拟的未加密卡,可以直接修改读取的数据,或者读取一张空卡,然后复制门禁卡的第一行数据替换,写入空卡中。用小米手环进行模拟后,再用PN532将加密数据覆写入模拟卡内即可。PN532可以直接读取小米手环的模拟卡,为什么不能先用小米手环生成一张空卡,然后再进行写入呢?之前尝试过,PN532无法写入小米手环自己模拟的空卡的0扇区0行数据,就是卡号和厂商无法修改,这样门禁会不识别这张卡。所以只能用这种过度手段来进行复制,如果有更简便的方法,请留言告知,先谢了!
标签: #m1卡加密算法含有检验位