联系建和


建和诚达科技

QQ:2355642023
电话:0755-29186669 
咨询热线:13798598242



智能卡知识
您的位置:首页> 智能卡知识 > 停车卡破解方式、停车卡密码规则及控制位详解
停车卡破解方式、停车卡密码规则及控制位详解
时间:2015-7-2 9:08:00
      停车卡现在多采用M1卡,因为停车卡的密码规则及控制位的设计问题,在不完全加密的情况下,停车卡是可以被破解的。在停车卡被破解的前提下又如何提供系统的安全性,防止停车卡破解带来的损失呢?
停车卡

一、停车卡主要技术指标
l 容量为8K位EEPROM
l 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
l 每个扇区有独立的一组密码及访问控制
l 每张卡有唯一序列号,为32位
l 具有防冲突机制,支持多卡操作
l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
l 数据保存期为10年,可改写10万次,读无限次
l 工作温度:-20℃~50℃
l 工作频率:13.56MHZ
l 通信速率:106KBPS
l 读写距离:10mm以内(与读写器有关)
二、停车卡内部数据存储结构及如何破解停车卡密码
1M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
 
 
 
 
 
 
0
 
数据块
0
扇区
1
 
数据块
1
 
2
 
数据块
2
 
3
密码存取控制 密码B
控制块
3
 
0
 
数据块
4
扇区1
1
 
数据块
5
 
2
 
数据块
6
 
3
密码存取控制 密码B
控制块
7
 
 
    ∶
    ∶
 
 
 
0
 
数据块
60
扇区15 
1
 
数据块
61
 
2
 
数据块
62
 
3
密码存取控制 密码B
控制块
63
2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、每个扇区的块0、块1、块2数据块,可用于存贮数据。
数据块可作两种应用:
 用作一般的数据保存,可以进行操作。
 用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3控制块,包括了密码A、存取控制、密码B。具体结构如下:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5
密码A6字节) 存取控制(4字节) 密码B6字节) 
5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
0 C10 C20 C30
1 C11 C21 C31
2 C12 C22 C32
3 C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 
进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制
位在存取控制字节中的位置,以块0为例:
对块0的控制:
bit 7 6 5 4 3 2 1 0
字节6
 
 
 
C20_b
 
 
 
C10_b
字节7
 
 
 
C10
 
 
 
C30_b
字节8
 
 
 
C30
 
 
 
C20
字节9
 
 
 
 
 
 
 
 
注: C10_b表示C10取反 )
存取控制(4字节,其中字节9为备用字节)结构如下所示:
bit 7 6 5 4 3 2 1 0
字节6
C23_b
C22_b
C21_b
C20_b
C13_b
C12_b
C11_b
C10_b
字节7
C13
C12
C11
C10
C33_b
C32_b
C31_b
C30_b
字节8
C33
C32
C31
C30
C23
C22
C21
C20
字节9
 
 
 
 
 
 
 
 
注: _b表示取反 )
6数据块(块0、块1、块2)的存取控制如下:
控制位(X=0.1.2
访    (对数据块 012
C1X
C2X
C3X
Read
Write
Increment
Decrement, transfer,
Restore
0
0
0
KeyA|B
KeyA|B
KeyA|B
KeyA|B
0
1
0
KeyA|B
Never
Never
Never
1
0
0
KeyA|B
KeyB
Never
Never
1
1
0
KeyA|B
KeyB
KeyB
KeyA|B
0
0
1
KeyA|B
Never
Never
KeyA|B
0
1
1
KeyB
KeyB
Never
Never
1
0
1
KeyB
Never
Never
Never
1
1
1
Never
Never
Never
Never
KeyA|B 表示密码A或密码BNever表示任何条件下不能实现)
例如:当块0的存取控制位C10 C20 C30= 0 0 1时,验证密码A或密码B正确后可读
验证密码B正确后可写;不能进行加值、减值操作。
7控制块3的存取控制与数据块(块012)不同,它的存取控制如下:
 
 
 
密码A
存取控制
密码B
C13
C23
C33
Read
Write
Read
Write
Read
Write
0
0
0
Never
KeyA|B
KeyA|B
Never
KeyA|B
KeyA|B
0
1
0
Never
Never
KeyA|B
Never
KeyA|B
Never
1
0
0
Never
KeyB
KeyA|B
Never
Never
KeyB
1
1
0
Never
Never
KeyA|B
Never
Never
Never
0
0
1
Never
KeyA|B
KeyA|B
KeyA|B
KeyA|B
KeyA|B
0
1
1
Never
KeyB
KeyA|B
KeyB
Never
KeyB
1
0
1
Never
Never
KeyA|B
KeyB
Never
Never
1
1
1
Never
Never
KeyA|B
Never
Never
Never
例如:当块3的存取控制位C13 C23 C33= 0 0 1时,表示:
密码A:不可读,验证KEYAKEYB正确后,可写(更改)。
存取控制:验证KEYAKEYB正确后,可读、可写。
密码B:验证KEYAKEYB正确后,可读、可写。 
新卡片中的控制字(FF 07 80 69)密码A可用,密码B不可用; 
推荐的控制字
方案一:7F 07 88 69
此控制字说明:
 
数据块:用密码AB都可以读写; 
控制块
密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码AB都可读,由密码B写;
方案二:08 77 8F 69
此控制字说明:
数据块
用密码A读,由密码B读写;
控制块
密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码AB都可读,由密码B写;
三、停车卡工作原理
卡片的电气部分只由一个天线和ASIC组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。
ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个
8KEEPROM组成。
四、对停车卡内部数据块的操作
 (Read):读一个块;
 (Write):写一个块;
Increment):对数值块进行加值;
Decrement):对数值块进行减值;
存储Restore):将块中的内容存到数据寄存器中;
传输Transfer):将数据寄存器中的内容写入块中;
中止Halt):将卡置于暂停工作状态;
停车卡破解对于电脑周边编程,主要有两种思路(应该没有第三种了)。
       
一、利用windows系统本身dll库。
二、利用硬件产家提供的dll。
本篇对M1卡的编程是利用上述第二种方法。
M1卡最为重要的优点是可读可写并且安全性高的多功能卡。这些优点与其自身的结构密不可分。
停车卡结构:
M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。
停车卡运作机理:
连接读写器→寻卡→识别卡(获取卡序列号)→从多卡中选一张卡→向卡中缓冲区装载密码→验证密码→进行读写→关闭连接
即(代码说明)
Open_USB→rf_request→rf_anticoll→rf_select→rf_load_key→rf_authentication→(/a_hex)→rf_read/rf_write→(hex_a)→Close_USB
如果概括来说的话,主要也就四部分 开关连接、寻卡、验证密码、读取
(至于详细程序代码,相信大家自己看过dll说明文档后,自己会明白的,这里就不写了,因为内容多)
停车卡功能模式:
1.寻卡模式:
寻卡模式分三种情况:IDLE模式、ALL模式及指定卡模式(0,1,2 均是int类型,是方法参数,下同)。
0——表示IDLE模式,一次只对一张卡操作;
1——表示ALL模式,一次可对多张卡操作;
2——表示指定卡模式,只对序列号等于snr的卡操作(高级函数才有)【不常用】
也就是说,我们一次也可以同时操作多张卡。
对于多卡操作,其实际真正执行操作的还是一张卡。读写器能识别多张卡的序列号(但注意识别出的顺序是不定的,并且最多也就能识别4张卡,因为卡叠放的厚度太厚,会超出读写器的识别范围),并一一进行操作。
所以由此看出,多卡操作的意义并不大。但我建议大家还是设置为1好了(原因不说了,自己感受吧,其实无所谓)。
2.密码验证模式:
0——KEYSET0的KEYA
4——KEYSET0的KEYB
M1卡可以在验证密码时选择密码类型(A/B)。【其实M1卡有3套密码(KEYSET0、KEYSET1、KEYSET2),共6个密码(用0~2、4~6来表示这六个密码),目的是为了适应不同读写器。而这里我们用的是KEYSET0的2个密码】
停车卡密码机制及如何破解停车卡:
这可以说是M1卡的精髓了,也是M1卡最为复杂的地方,希望大家耐心看完。
(请先看明白M1卡结构)如上所说,在存取控制中每个块都有相应的三个控制位,它们的定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
一个扇区的三个数据块,我们可以利用密码机制对它们分别进行权限控制。数据块(块0、块1、块2)的存取控制如下:
 
 
例如:当块0的存取控制位C10 C20 C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。
那么M1卡修改密码的方法是rf_changeb3
参数:
icdev:通讯设备标识符
_SecNr:扇区号(0~15)
KeyA:密码A
_B0:块0控制字,低3位(D2D1D0)对应C10、C20、C30
_B1:块1控制字,低3位(D2D1D0)对应C11、C21、C31
_B2:块2控制字,低3位(D2D1D0)对应C12、C22、C32
_B3:块3控制字,低3位(D2D1D0)对应C13、C23、C33
_Bk:保留参数,取值为0
_KeyB:密码B
由上我们看出_B0、_B1、_B2、_B3分别控制块0、块1、块2、块3。
由图我们可知_B0、_B1、_B2的可取值为 0、10、100、110、1、11、101、111。
这里大家一定要注意一点:
不能装载密码到M1卡某一扇区后再更改那扇区的密码(最好连接完读写器后直接更改密码),否则更改密码会失败而冻结扇区。如果不慎这样了,解决的办法是完成一次读写操作,再更改密码。
控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:
 
_B3的取值与_B0相同。

建和诚达是专业的停车卡产厂家

深圳市建和诚达科技有限公司是一家大型的智能卡生产厂家,专注智能卡生产13年,现有生产面积6000平方米,产线人员200多人,拥有多条智能卡生产线,主要产品有钥匙扣卡、磁条卡、条码卡、医院就诊卡、校园IC卡、公交ic卡、小区门禁卡、停车卡、超会员卡等各种智能卡。

对于有需要破解停车卡的客户
         1、要用于合法用途 
         2、能够证明自己停车场使用。
         3、因系统集成商联系不上等原因造成的系统无法继续使用的,我们可以提供停车卡破解服务。


建和诚达
 


M1卡制作联系方式
 
 

 

IC卡制作联系方式          深圳市建和诚达科技有限公司是国内最专业的智能卡生产厂家,产品主要有接触式IC卡感应式IC卡ID卡CPU卡可视卡公交IC卡校园IC卡、医院IC卡门禁IC卡驾校IC卡等各种智能卡。我们有专业的生产和销售团队,随时为你服务。

深圳市建和诚达科技有限公司 
全国服务热线:0755 - 2918 6669 
市场部 QQ 2355642023(马先生)  13798598242 
市场部 QQ 2355642028 (董小姐) 13798209231
公司地址:深圳市宝安区石岩塘头大道宏发高新园
 
推荐产品
[返回]
建和首页 | 医院就诊卡 | 充电卡 | 智能门锁卡 | 门禁卡 | 物品标识卡 | 会员卡知识 | 会员卡应用方案 | 常见问题解答 | 关于建和 | 联系建和
点击这里给我发消息
点击这里给我发消息
点击这里给我发消息
点击这里给我发消息