使用proxmark3修改UID卡的0号扇区

一般来说,可擦写的高频卡分为以下几类:

M1 S50卡
  目前最常见的高频卡,也是我们口中俗称的IC卡。M1卡科储存的数据大小为8k,分为16个扇区,每个扇区分4个块,每个块为16个字节,以块为存取单位。每个扇区都有独立的一组密码及访问控制,每张卡有唯一的一个32位的序列号。每个扇区的0,1,2块为数据块,用来存储数据,第3块为控制块,包括了密A、存取控制、密码B。 每张卡的第0扇区的第0块用来春芳厂商代码,不可更改。

M1 UID卡
  M1 UID卡是针对M1 S50卡特制的变种卡,用起来和M1 S50完全一样,只是多了一个功能,就是0扇区块的数据可以随意修改。因此UID号也可以随意修改,厂家信息也可以随意修改。UID卡修改0扇区0块数据是靠指令进入工厂模式,可以直接对全卡任何数据编辑,不需要密码即可读写卡,同时不怕写坏卡,即使写错0块,写坏扇区控制字,也可以随时修复回来,不影响后续使用。

FUID卡
  FUID卡是针对UID卡做的优化。新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能。FUID可以修改0块,但只可以修改一次,写错也没办法更改,也不能重复利用。修改后和M1卡完全一样,很难被屏蔽检测。

CUID卡
  CUID卡是针对FUID卡做的优化。CUID卡可以重复修改0块,但是它和UID卡的区别是,UID卡是通过指令修改0块,CUID使用的是常规密码验证的方法写0块,其他扇区和标准M1卡相同。缺点是,还是有可能会被检测出来,而且如果不小心写错了UID号的校验位导致无法读卡,没办法修复只能报废。

本来想买CUID卡,现在不小心买了个UID卡,虽然0号扇区不能像CUID卡那样方便直接写入了,但还是有办法的:

方案一:

 hf mf csetuid UID(4字节数据如AAAAAAAA) ATQA(2字节数据如AAAA) SAK(1字节数据AA)

这个方法可以通过设置UID修改前8字节但数据,但后8字节的数据无法改。
如原来默认00000000000000000000000000000000 可以被写为AAAAAAAAAAA804000000000000000000但不能改为
AAAAAAAAAAA804006263646566676869

方案二:

hf 14a raw -p -a -b 7 40      
hf 14a raw -p -a 43
hf 14a raw -c -p -a A000
hf 14a raw -c -p -a <0扇区16字节数据如:AAAAAAAAAAA804006263646566676869>
hf 14a raw -c -a 3000

这个方法是通过发送底层二进制信息,可以用来修改0号扇区全部数据,推荐采用。

proxmark3 批量执行命令

上述命令比较长,我们可以将其保存在一个文件中比如script.txt然后使用以下命令批量执行。

cat script.txt| proxymark3.exe COM3 # com3是你的端口号 

或者直接

 proxymark3.exe COM3 script.txt

你可能感兴趣的:(安全)