首页 > 代码库 > 低频RFID卡分析(ID卡为例)
低频RFID卡分析(ID卡为例)
拿到一张RFID卡,第一步便是识别该卡到底为何卡。可以用proxmark3带的调频命令(hw tune)初步区分出是高频卡还是低频卡,这一点,网上有很多说明,其次,可以根据卡片上的商标和标志,做进一步的识别,没有明显识别标志的,只能自己慢慢推理。
下面,以常见的ID卡为例, 通过proxmark3带的数据分析命令,自己分析低频卡数据。( HID卡分析原理与步骤基本相同 )
首先,了解一下低频卡的数据格式。以ID卡的EM410X数据格式为例,常用的125KHz的ID卡内固化了64位数据,由5个区组成:9个引导位、10个行偶校验位“P0~P9′’、4个列偶校验位“PC0~PC3”、40个数据位“D00~D93”和1个停止位S0。9个引导位是出厂时就已掩膜在芯片内的,其值为“111111111”,当它输出数据时,首先输出9个引导位,然后是10组由4个数据位和1个行偶校验位组成的数据串,其次是4个列偶校验位,最后是停止位“0”。
1 1 1 1 1 1 1 1 1 9 bits头 8 bits 版本或厂商ID D00 D01 D02 D03 P0 D10 D11 D12 D13 P1 D20 D21 D22 D23 P2 D30 D31 D32 D33 P3 D40 D41 D42 D43 P4 10bits行检验 D50 D51 D52 D53 P5 32bits数据 D60 D61 D62 D63 P6 D70 D71 D72 D73 P7 D80 D81 D82 D83 P8 D90 D91 D92 D93 P9 PC0 PC1 PC2 PC3 S0 4位列校验
“D00~D13”是一个8位的版本号或厂商代码。“D20~D93”是8组32位的芯片信息,即卡号。校验是偶校验,因为如果是奇校验的话,在一个字节是FF的情况下,很容易就出现9个1,这样引导位就不是唯一的了,也就无法判断64位数据的起始位了。
其次,了解一下EM410x常用的编码方式。EM410x常用曼彻斯特进行编码 (典型方式,RF 周期与数据位周期的比率为 RF/64 ,即每 bit的数据率可为载波频率的64倍)。曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,用来编码一个同步位流的时钟和数据,在这个技术下,实际上的二进制数据不是作为一个序列的逻辑1或0来发送的,这些位被转换为一个稍微不同的格式,在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示”1″,从低到高跳变表示”0″。
编好码的信号,是数字信息,即0、1bit流 ,是基带信号,而实际通信中,信道并不能直接传送基带信号,必须用基带信号对载波波形的某些参量进行控制,载波随基带信号变化而变化,称为数字调制。ID与读卡头通信的数据流必须先进行调制。
常用的数字调制方法有三种:
ASK ——幅移键控调制,把二进制符号0和1分别用不同的幅度来表示。
FSK ——频移键控调制,即用不同的频率来表示不同的符号。
PSK ——相移键控调制,通过二进制符号0和1来判断信号前后相位。
( ID卡用ASK调制,而HID用FSK调制。)
低频卡分析(因为我只看过ID卡,类HID卡的数据,因此我此处的低频卡特指ID和HID卡或者类似格式卡),大致4个步骤:
1、数据采集 2、bit流周期分析 3、解调、解码(如有编码的话) 4、数据分析。
用到的命令有:
(看到这类型的波形,第一步先ask解调)
从data autocorr的输出波形,找出波形的周期值,找不到的话,第一步多采集一些再看看……
这是采集4000数据后,用 data autocorr 4000得到的结果,可以明显的看出周期的存在。
第三步:从波形看调制模式
查看第一步采集到的波形。数字信号 ,都是通过调制后再进行传播的,常用的信号调制模式有 ask 、 fsk、 psk , 根据data samples 得到的波形 ,可以初步判定是用那种方式进行调制的 , 需要用对应的方式进行解调后再进行解码。
>lf read
>data sample 2000
> data askdemod 1
得到
将上图放大,数一跳转周期点距
使用命令
> data mandemod 64
结果如下:
Warning: Manchester decode error for pulse width detection. (too many of those messages mean either the stream is not Manchester encoded, or clock is wrong) Manchester decoded bitstream 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 0 0
第四步:运用自己的头脑 ,进行分析 ,从而达到复制的目的
这个就不多说了,文档中一开始描述了ID卡的数据格式,找出数据头开始分析即可。
至于怎么复制卡,找张T55X7卡,了解到卡结构,0区各位代表的意义,进行对应的写入操作即可。 此处不做赘述