M1卡破解密码控制位及控制规则Word下载.docx
- 文档编号:15727096
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:9
- 大小:128.03KB
M1卡破解密码控制位及控制规则Word下载.docx
《M1卡破解密码控制位及控制规则Word下载.docx》由会员分享,可在线阅读,更多相关《M1卡破解密码控制位及控制规则Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
块1
1
块2
2
块3
密码A存取控制密码B
控制块
3
4
扇区1
5
6
7
∶
∶
60
扇区15
61
62
63
2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:
★用作一般的数据保存,可以进行读、写操作。
★用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。
具体结构如下:
A0A1A2A3A4A5FF078069B0B1B2B3B4B5
密码A(6字节)存取控制(4字节)密码B(6字节)
5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。
存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
块0:
C10C20C30
块1:
C11C21C31
块2:
C12C22C32
块3:
C13C23C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如
进行减值操作必须验证KEYA,进行加值操作必须验证KEYB,等等)。
三个控制
位在存取控制字节中的位置,以块0为例:
对块0的控制:
bit76543210
字节6
C20_b
C10_b
字节7
C10
C30_b
字节8
C30
C20
字节9
(注:
C10_b表示C10取反)
存取控制(4字节,其中字节9为备用字节)结构如下所示:
C23_b
C22_b
C21_b
C13_b
C12_b
C11_b
C13
C12
C11
C33_b
C32_b
C31_b
C33
C32
C31
C23
C22
C21
_b表示取反)
6、数据块(块0、块1、块2)的存取控制如下:
控制位(X=0.1.2)
访问条件(对数据块0、1、2)
C1X
C2X
C3X
Read
Write
Increment
Decrement,transfer,
Restore
KeyA|B
Never
KeyB
(KeyA|B表示密码A或密码B,Never表示任何条件下不能实现)
例如:
当块0的存取控制位C10C20C30=001时,验证密码A或密码B正确后可读;
验证密码B正确后可写;
不能进行加值、减值操作。
7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:
密码A
存取控制
密码B
当块3的存取控制位C13C23C33=001时,表示:
密码A:
不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:
验证KEYA或KEYB正确后,可读、可写。
密码B:
新卡片中的控制字(FF078069)密码A可用,密码B不可用;
推荐的控制字
方案一:
7F078869
此控制字说明:
数据块:
用密码A或B都可以读写;
控制块:
由密码B来写,不可读;
控制字:
用密码A或B都可读,由密码B写;
方案二:
08778F69
用密码A读,由密码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、块1、块2)的存取控制如下:
当块0的存取控制位C10C20C30=100时,验证密码A或密码B正确后可读;
那么M1卡修改密码的方法是rf_changeb3
参数:
icdev:
通讯设备标识符
_SecNr:
扇区号(0~15)
KeyA:
_B0:
块0控制字,低3位(D2D1D0)对应C10、C20、C30
_B1:
块1控制字,低3位(D2D1D0)对应C11、C21、C31
_B2:
块2控制字,低3位(D2D1D0)对应C12、C22、C32
_B3:
块3控制字,低3位(D2D1D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- M1 破解 密码 控制 规则
![提示](https://static.bdocx.com/images/bang_tan.gif)