keyA的修改
- 格式:doc
- 大小:65.50 KB
- 文档页数:2
非接触式IC卡性能简介(M1卡)一、主要指标●容量为8K位EEPROM●分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位●每个扇区有独立的一组密码及访问控制●每张卡有唯一序列号,为32位●具有防冲突机制,支持多卡操作●无电源,自带天线,内含加密控制逻辑和通讯逻辑电路●数据保存期为10年,可改写10万次,读无限次●工作温度:-20℃~50℃(湿度为90%)●工作频率:13.56MHZ●通信速率:106 KBPS●读写距离:10 cm以内(与读写器有关)二、存储结构1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:数据块0数据块 1数据块 2控制块 3数据块 4数据块 5数据块 6控制块7数据块60数据块61数据块62控制块632、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:★ 用作一般的数据保存,可以进行读、写操作。
★ 用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3为控制块,包括了密码A 、存取控制、密码B 。
具体结构如下:密码A (6字节) 存取控制(4字节) 密码B (6字节)5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。
存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A ,进行加值操作必须验证KEY B ,等等)。
HF高频读写器系列协议手册说明:1.读写器地址只有在使用RS485通信的时候才有效,默认地址为:0x202.读写器默认波特率9600,无校验,8位数据位,1位停止位3.与读写器连接的PC,嵌入式平台,PLC等设备在以下手册中说明中简称为上位机或主机1.Mifare 1 IC S50内部存储简单介绍Mifare 1 S50卡片的存储容量为1024 * 8位字节长 ,即1024字节,采用EEPROM作为存储介质,整个结构划分为16个扇区,编号为扇区0 ~15 ,每个扇区有4个块(Block) ,分别为块0,块1, 块2和块3 ,每个块有16个字节,一个扇区共有 16 Byte X 4 = 64 Byte ,每个扇区的块3(即第四块) 包含了该扇区的KEYA(6个字节) 存取控制(4 个字节) KEYB(6个字节),是一个特殊的块,其余三个块是一般的数据块,对卡的数据块进行读写等操作时,需要先验证KEYA或者KEYB才能完成。
内部结构如下图:更多关于S50详细的介绍请参考S50手册2.命令与返回包格式上位机发送命令十六进制格式:命令类型:占用1字节0x01 卡片相关操作命令(读卡号,读数据块,写数据块等操作)0x02 读写器参数查询0x03读写器参数设置0x04其他命令包长度:占用1字节长度,整个数据包的长度命令:占用1字节长度,当命令类型为0x01时,命令为卡片操作命令,如下:0x A1 读卡号命令,无需验证密钥0x A2 原来为注册卡命令,新版软件取消了此命令0x A3 读指定数据块命令,验证KEYA,一次读取一个数据块,一个数据块长度为16字节0x A4写指定数据块命令,验证KEYA,一次写入一个数据块,一个数据块长度为16字节 0x A5扇区加密命令,验证KEYA,更改指定扇区密钥(对指定的扇区进行加密)0x A6初始化钱包命令,验证KEYA,将指定数据块初始化为钱包格式0x A7钱包减值(扣款)命令,验证KEYA,将钱包值减一个指定的数值0x A8钱包加值(充值)命令,验证KEYA,将钱包值加一个指定的数值0x A9查询钱包(查询余额)命令,验证KEYA以上命令在对卡片进行操作时,验证的是卡的KEYA,如需验证卡的KEYB,将命令按位取反其他不变,比如0xA3命令为读数据块时验证卡的KEYA,如果需验证卡的KEYB,那么需要将0xA3按位取反,取反后为:0x5C;命令0xA4取反后值为0x5B,0x5B命令为写指定数据块时验证卡的KEYB。
keya接囗定义(原创实用版)目录1.引言2.Keya 接口的定义3.Keya 接口的功能4.Keya 接口的应用实例5.结论正文【引言】在计算机科学领域,接口定义是一种重要的概念。
接口定义是一种抽象的数据类型,用于描述一组方法或函数,这些方法或函数可以被其他编程语言或模块调用。
Keya 接口就是其中的一种。
【Keya 接口的定义】Keya 接口是一种用于定义数据结构和操作的接口。
这个接口包含了一系列的方法,用于实现特定的功能。
Keya 接口的定义通常包括以下几个部分:接口名称、方法签名和返回值类型。
【Keya 接口的功能】Keya 接口的主要功能是提供一组通用的方法,以便在不同的编程语言或模块之间实现数据交换和通信。
这些方法可以包括数据读取、数据写入、数据验证等功能。
通过使用 Keya 接口,可以简化编程工作,提高代码的可读性和可维护性。
【Keya 接口的应用实例】Keya 接口在实际应用中有很多实例。
例如,在 Java 语言中,java.util.List 接口就是一种 Keya 接口。
List 接口定义了一系列的方法,如 add()、remove() 等,用于实现对列表数据结构的操作。
在 Python 中,列表(list)也是一种 Keya 接口,它包含了一系列的方法,如append()、pop() 等,用于实现对列表的操作。
【结论】Keya 接口是计算机科学中一种重要的概念,它可以帮助我们更好地理解和使用编程语言。
通过使用 Keya 接口,我们可以简化编程工作,提高代码的可读性和可维护性。
S50非接触式IC卡性能简介(M1)一、主要指标●容量为8K位EEPROM●分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位●每个扇区有独立的一组密码及访问控制●每张卡有唯一序列号,为32位●具有防冲突机制,支持多卡操作●无电源,自带天线,内含加密控制逻辑和通讯逻辑电路●数据保存期为10年,可改写10万次,读无限次●工作温度:-20℃~50℃(湿度为90%)●工作频率:13.56MHZ●通信速率:106 KBPS●读写距离:10 cm以内(与读写器有关)二、存储结构1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:数据块0数据块 1数据块 2控制块 3数据块 4数据块 5数据块 6控制块7数据块60数据块61数据块62控制块632、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:★用作一般的数据保存,可以进行读、写操作。
★用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。
具体结构如下:密码A(6字节)存取控制(4字节)密码B(6字节)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的控制:字节7字节8字节9( 注:C10_b表示C10取反)存取控制(4字节,其中字节9为备用字节)结构如下所示:字节6字节7字节8字节9( 注:_b表示取反)6、数据块(块0、块1、块2)的存取控制如下:例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。
原来网上只有粗略的介绍,但是对初学者而言都有些困难,很多只是一个大体的逻辑,并没有详细的步骤,费了半天劲终于搞定了,特写下来留念,有可能有些概念不对,以后随着了解的深入会陆续修正。
一:去掉权限判断文件LSKEYF00的只读属性:1,Tcode处输入SE30回车(Tcode处就是指登陆sap后界面上放的可输入框)。
2,按F6(Tips&Tricks)(这里2,3步是以IDES4.7c为标准的,如果你用的4.6,按f6后会出现一个列表,随便选一个进入,会出现一个分为左右的程序显示框,先把左右的程序全部删除掉,然后参照第三步继续。
ecc6.0与本4.7基本相同)3,在右边写下面一段程序,Update PROGDIR set edtx = ''Wherename = 'LSKEYF00'Andstate = 'A'.4,F8执行,这时文件LSKEYF00的Editor lock就会打开,也就是说将这个文件更改为可以编辑。
等于windows下面取消只读权限。
二:在权限判断文件里面加上断点,阻断权限判断。
5,返回到起始页面,Tcode输入SE38回车。
6,程序输入LSKEYF00。
7,点display(显示)。
8,找到JUMP_THE_WALL 块,然后在这块中找到下面这段CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'ID 'CUSTID' FIELD '1234567890'ID 'KEY' FIELD DUMMY_KEY.9,把光标放在dummy_key后面.点击页面上的红色stop(ecc6.0里面没有红色stop,但是有两个“添加断点”,选第二个吧,第一个没有试),在这里添加一个断点,此时上面的最后一行会变为黄色。
科技成就梦想 火眼科技S50非接触式IC卡性能简介(M1)一、 主要指标容量为8K位EEPROM分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位每个扇区有独立的一组密码及访问控制每张卡有唯一序列号,为32位具有防冲突机制,支持多卡操作无电源,自带天线,内含加密控制逻辑和通讯逻辑电路数据保存期为10年,可改写10万次,读无限次工作温度:-20℃~50℃(湿度为90%)工作频率:13.56MHZ通信速率:106 KBPS读写距离:10 cm以内(与读写器有关)二、 存储结构1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:块0 数据块0扇区0 块1 数据块 1块2 数据块 2块3 密码A 存取控制密码B 控制块 3块0 数据块 4扇区1 块1 数据块 5块2 数据块 6块3 密码A 存取控制密码B 控制块7∶∶∶0 数据块60扇区15 1 数据块612 数据块623 密码A 存取控制密码B控制块632、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:★ 用作一般的数据保存,可以进行读、写操作。
★ 用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。
具体结构如下:密码A(6字节)存取控制(4字节)密码B(6字节)5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。
存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:块0: C10 C20 C30块1: C11 C21 C31块2: C12 C22 C32块3: C13 C23 C33三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。
M1卡修改各区块控制位值和数据
日期:2013年06月18日分类:智能卡标签: 智能卡作者:堕落的鱼。
(一),以常用设置”08 77 8F 69″控制条件为例,先搞清楚它――具有的访问权限。
1、对”08 77 8F 69″值进行计算,该值定位于各区块3的6,7,8,9四个字节内,字节6=08,字节7=77,字节8=8F,字节9=69(默认值,不予计算)。
表3
如果相应扇区尾块Key B可读,则不得用作认证(前表中所有灰色行)。
后果:如果读写器试图用灰色行的访问控制条件以Key B认证任何扇区的任何块,卡将在认证后拒绝所有后续存储器访问。
表5:尾块的读写条件
表5
注:灰色行为key B可读并可用于存储数据的访问控制条件。
5、查对访问权限(数据存取控制依照表3,块3存取控制依照表5),该例”08 77 8F 69″的访问权限为:
◆块3 = 011:权限为:KeyA,KeyB均不可读,验证KeyB正确后可改写KeyA和KeyB,验证KeyA或KeyB正确后可读”控制位”。
在此可见密钥KeyB的重要性,KeyB不正确是无法看到块3控制值,更无法修改密钥。
◆块2 = 块1 = 块0 = 110:权限为:验证KeyA或KeyB后可读该块数据,减值以及初始化值,只有验证KeyB 正确后才可改写该块数据,在此可以看到密钥KeyB对改写数据块也起着关键性作用。
(二)、”08 77 8F 69″控制条件设置步骤:
由(一)可知:KeyB设置后为不可读,并且改写数据和改写控制位都需要正确验证它,故KeyB设置后程序操作员必须妥善保管KeyB值,否则以后改写数据和控制位时,不正确的KeyB值将无法实现卡的任何操作!!!
1、修改块3控制位的值:最初的各区块3内的KeyA,KeyB都是厂商12个”F”默认值(KeyA在任何条件下均为不可读,大部分读写机程序表现KeyA为未知的12个”0″ ),在修改控制值时,先不要修改默认密码KeyA和KeyB,在控制位修改成功后,再去更改新密码值。
即先对块3的控制位进行修改(默认值
FF 07 80 69改为新值08 77 8F 69)并执行写操作。
控制位写成功后,KeyB亦为12个”0″不可读了,但仍是隐藏的12个”f”默认值。
2、修改块3的KeyA和KeyB值:控制位08 77 8F 69值写成功后,验证KeyB正确后方可改写KeyA和KeyB新密码。
在密码操作模式键入要改写区块之先前密码B(先前密码为默认值时,则不需改动和加载),加载后反回数据操作模式,再进行读值,KeyA和KeyB值的改写。
3、修改块0~块2中数据:由新的控制条件08778F69可知,要修改数据,必须先验证KeyB,故先设置密码操作为KeyB认证方式,加载后再返回数据操作模式,对要修改的数据块进行值的改写操作。
4、上例中分析了”08 77 8F 69″的访问条件及其改写步骤,对用户的其它控制条件亦可参照应用。