M1卡破解密码控制位及控制规则.docx

上传人:b****5 文档编号:10167060 上传时间:2023-02-09 格式:DOCX 页数:9 大小:167.55KB
下载 相关 举报
M1卡破解密码控制位及控制规则.docx_第1页
第1页 / 共9页
M1卡破解密码控制位及控制规则.docx_第2页
第2页 / 共9页
M1卡破解密码控制位及控制规则.docx_第3页
第3页 / 共9页
M1卡破解密码控制位及控制规则.docx_第4页
第4页 / 共9页
M1卡破解密码控制位及控制规则.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

M1卡破解密码控制位及控制规则.docx

《M1卡破解密码控制位及控制规则.docx》由会员分享,可在线阅读,更多相关《M1卡破解密码控制位及控制规则.docx(9页珍藏版)》请在冰豆网上搜索。

M1卡破解密码控制位及控制规则.docx

M1卡破解密码控制位及控制规则

M1卡破解密码控制位及控制规则

LT

三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如

进行减值操作必须验证KEYA,进行加值操作必须验证KEYB,等等)。

三个控制

位在存取控制字节中的位置,以块0为例:

对块0的控制:

bit76543210

字节6

C20_b

C10_b

字节7

C10

C30_b

字节8

C30

C20

字节9

(注:

C10_b表示C10取反)

存取控制(4字节,其中字节9为备用字节)结构如下所示:

bit76543210

字节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)

访问条件(对数据块0、1、2)

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或密码B,Never表示任何条件下不能实现)

例如:

当块0的存取控制位C10C20C30=001时,验证密码A或密码B正确后可读;

验证密码B正确后可写;不能进行加值、减值操作。

7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:

密码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的存取控制位C13C23C33=001时,表示:

密码A:

不可读,验证KEYA或KEYB正确后,可写(更改)。

存取控制:

验证KEYA或KEYB正确后,可读、可写。

密码B:

验证KEYA或KEYB正确后,可读、可写。

新卡片中的控制字(FF078069)密码A可用,密码B不可用;

推荐的控制字

方案一:

7F078869

此控制字说明:

数据块:

用密码A或B都可以读写;

控制块:

密码A:

由密码B来写,不可读;

密码B:

由密码B来写,不可读;

控制字:

用密码A或B都可读,由密码B写;

方案二:

08778F69

此控制字说明:

数据块:

用密码A读,由密码B读写;

控制块:

密码A:

由密码B来写,不可读;

密码B:

由密码B来写,不可读;

控制字:

用密码A或B都可读,由密码B写;

三、卡片

卡片的电气部分只由一个天线和ASIC组成。

天线:

卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。

ASIC:

卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个

8K位EEPROM组成。

四、对数据块的操作

读(Read):

读一个块;

写(Write):

写一个块;

加(Increment):

对数值块进行加值;

减(Decrement):

对数值块进行减值;

存储(Restore):

将块中的内容存到数据寄存器中;

传输(Transfer):

将数据寄存器中的内容写入块中;

中止(Halt):

将卡置于暂停工作状态;

对于电脑周边编程,主要有两种思路(应该没有第三种了)。

【详细说明见我博文永和豆浆管理系统基础工作总结】

一、利用windows系统本身dll库。

二、利用硬件产家提供的dll。

本篇对M1卡的编程是利用上述第二种方法。

M1卡最为重要的优点是可读可写并且安全性高的多功能卡。

这些优点与其自身的结构密不可分。

M1结构:

M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。

第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。

其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。

每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。

M1卡运作机理:

连接读写器→寻卡→识别卡(获取卡序列号)→从多卡中选一张卡→向卡中缓冲区装载密码→验证密码→进行读写→关闭连接

即(代码说明)

Open_USB→rf_request→rf_anticoll→rf_select→rf_load_key→rf_authentication→(/a_hex)→rf_read/rf_write→(hex_a)→Close_USB

如果概括来说的话,主要也就四部分开关连接、寻卡、验证密码、读取。

(至于详细程序代码,相信大家自己看过dll说明文档后,自己会明白的,这里就不写了,因为内容多)

M1卡功能模式:

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卡最为复杂的地方,希望大家耐心看完。

(请先看明白M1卡结构)如上所说,在存取控制中每个块都有相应的三个控制位,它们的定义如下:

块0:

C10C20C30

块1:

C11C21C31

块2:

C12C22C32

块3:

C13C23C33

一个扇区的三个数据块,我们可以利用密码机制对它们分别进行权限控制。

数据块(块0、块1、块2)的存取控制如下:

例如:

当块0的存取控制位C10C20C30=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相同。

目前m1卡已经可以成功解密,没有安全保密可言,已经有软件可以测试出密码,也有空白m1卡可以写uid号码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1