码迷,mamicode.com
首页 > 其他好文 > 详细

低频RFID卡分析(ID卡为例)

时间:2014-05-05 10:27:57      阅读:1410      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   tar   

低频RFID卡,目前市场广泛使用门禁系统用的是ID和HID卡。使用PROMARK3进行分析ID卡和HID分析 ,很多人只是用系统自带的lf em4x em410xwatch 和 lf hid fskdemod 命令,而遇到非标准格式的低频卡,这些命令就无法获取正确的信息。

拿到一张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”。

bubuko.com,布布扣
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位列校验
bubuko.com,布布扣

“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″。

bubuko.com,布布扣

编好码的信号,是数字信息,即0、1bit流 ,是基带信号,而实际通信中,信道并不能直接传送基带信号,必须用基带信号对载波波形的某些参量进行控制,载波随基带信号变化而变化,称为数字调制。ID与读卡头通信的数据流必须先进行调制。

常用的数字调制方法有三种:

ASK ——幅移键控调制,把二进制符号0和1分别用不同的幅度来表示。 
FSK ——频移键控调制,即用不同的频率来表示不同的符号。 
PSK ——相移键控调制,通过二进制符号0和1来判断信号前后相位。

 

  bubuko.com,布布扣

 

             ( ID卡用ASK调制,而HID用FSK调制。)

      

了解完格式,以及编码、调制方式后,就可以采集数据进行分析了。pm3数据处理的命令,集中在data命令下,采集到的数据,可用data plot 命令输出图形进行查看。

低频卡分析(因为我只看过ID卡,类HID卡的数据,因此我此处的低频卡特指ID和HID卡或者类似格式卡),大致4个步骤:

bubuko.com,布布扣
1、数据采集
2、bit流周期分析
3、解调、解码(如有编码的话)
4、数据分析。
bubuko.com,布布扣

 

第一步:数据采集
用到的命令有:
>lf read 
注:由于是采集低频数据,所以在采集之前,先用命令 lf read
>data sample 2000
注:一般采集2000就够了,如果第二步分析没有发现明显的周期,则需要多采集一些数据看看
bubuko.com,布布扣
(看到这类型的波形,第一步先ask解调)
 
第二步:bit流周期分析:
>data autocorr 2000

从data autocorr的输出波形,找出波形的周期值,找不到的话,第一步多采集一些再看看……

bubuko.com,布布扣

这是采集4000数据后,用  data autocorr 4000得到的结果,可以明显的看出周期的存在。

 

第三步:从波形看调制模式

查看第一步采集到的波形。数字信号 ,都是通过调制后再进行传播的,常用的信号调制模式有 ask 、 fsk、 psk  , 根据data samples 得到的波形 ,可以初步判定是用那种方式进行调制的 , 需要用对应的方式进行解调后再进行解码。

>lf read 

>data sample 2000

> data askdemod 1

得到

 bubuko.com,布布扣

将上图放大,数一跳转周期点距

bubuko.com,布布扣

使用命令

> data mandemod 64

结果如下:

bubuko.com,布布扣
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
bubuko.com,布布扣

第四步:运用自己的头脑 ,进行分析 ,从而达到复制的目的

这个就不多说了,文档中一开始描述了ID卡的数据格式,找出数据头开始分析即可。

至于怎么复制卡,找张T55X7卡,了解到卡结构,0区各位代表的意义,进行对应的写入操作即可。 此处不做赘述

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

低频RFID卡分析(ID卡为例),布布扣,bubuko.com

低频RFID卡分析(ID卡为例)

标签:style   blog   class   code   java   tar   

原文地址:http://www.cnblogs.com/heiyue/p/3707832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!