📄 更新二进制文件.txt
字号:
;用密文修改二进制文件(密文写入有问题)
RESET
;建立MF结束
SEND 80e0000102 3f00
;删除MF
SEND 800e000008 ffffffffffffffff
;创建MF文件(1PAY.SYS.DDF01)
SEND 80e0000018 ffffffffffffffff 0f01 315041592e5359532e4444463031
ASSERT 9000
;建立DF文件
SEND 80E001000C 2F01 0F 00 44 52 49 56 45 52 30 31
ASSERT 9000
;建KEY文件
SEND 80E0020007 6F 02 05 0F 0F 0F 00
ASSERT 9000
;安装应用维护密钥
SEND 80D4000018 01 01 00 05 0F 0F 0F FF 000102030405060708090A0B0C0D0E0F
ASSERT 9000
;建立二进制文件 id:0005 00:明文,size:2f
SEND 80E0020007 0005 00 0F 0F 00 2f
ASSERT 9000
;建立二进制文件 id:0006 40:明文加mac,size:2f
SEND 80E0020007 0006 40 0F 0F 00 2f
ASSERT 9000
;建立二进制文件 id:0007 88:密文写入,size:2f
SEND 80E0020007 0007 80 0F 0F 00 2f
ASSERT 9000
;建立二进制文件 id:0008 c0:密文加mac,size:2f
SEND 80E0020007 0008 c0 0F 0F 00 2f
ASSERT 9000
;END DF
SEND 80e0010102 2f01
ASSERT 9000
;END MF
SEND 80e0000102 3f 00
ASSERT 9000
BREAK
;********************明文更新过程*****************
reset
;select DF 2f01
SEND 00a4000002 2f01
;select ef 0005
SEND 00a4020002 0005
;update binary
SEND 00d6000108 1122334455667788
ASSERT 9000
;READ BINARY
SEND 00B00001 08
ASSERT 1122334455667788
BREAK
;********************明文+mac更新过程*****************
RESET
;SELECT DF 2F01
SEND 00a4000002 2f01
;SELECT EF 0006
SEND 00a4020002 0006
;get radom
SEND 0084000004
ASSERT ffd751a6
;GET MAC DATA(04 D6 0001 0C 0011223344556677)
;MAC = 6955b44c
;UPDATE BINARY
SEND 04 D6 0001 0C 00112233445566776955b44c
ASSERT 9000
;READ BINARY
SEND 00B00001 08
ASSERT 0011223344556677
BREAK
;********************密方更新过程*****************
RESET
;SELECT DF 2F01
SEND 00a4000002 2f01
;SELECT EF 0007
SEND 00a4020002 0007
;data = 07(数据个数) + 00112233445566(数据)
;说明:一定要在数据前加上数据长度,并且data的长度必须是8的
;整数倍,如果不够要在数据后补80 + 00(n个),直到为8的整数倍。
;key = 000102030405060708090A0B0C0D0E0F
;des(key,data) = 2a8dfaf2ae9e4e29
;update binary
SEND 04D6000108 2a8dfaf2ae9e4e29
ASSERT 9000
;read binary
SEND 00B00001 08
ASSERT 00112233445566
BREAK
;********************密方+mac更新过程*****************
;1、复位
;2、选择DF 2f01
;3、选择二进制文件0005
SEND 00A4020002 0005
ASSERT 610C
;4、生成安全报文,步骤如下
; 1)DES计算 密文P
; 密钥为应用维护密钥
; 数据为要更改的数据
; 生成密文P
;例:
; 密钥:000102030405060708090A0B0C0D0E0F(应用维护密钥)
; 数据:07(数据个数) + 00112233445566(数据) (必须为8的整数倍个)
; 密文:2a8dfaf2ae9e4e29(P)
; 2)计算MAC
; 取4字节随机数Q
; 密钥为应用维护密钥
; 数据为 CLA+INS+P1+P2+LC+P(注:LC为P长度加4)
; 初始值 Q+00000000
; 补值为 80
; 生成 MAC
;5、更新二进制文件 CLA+INS+P1+P2+LC+p+MAC
;例:
reset
;select df:2f01
SEND 00A4000002 2f01
;select ef:0008
SEND 00a4020002 0008
;get radom
;SEND 00 84 00 00 04
;ASSERT 681ec0bf(Q)
;mac密钥: 000102030405060708090A0B0C0D0E0F(应用维护密钥)
;数据: 04D600010c2a8dfaf2ae9e4e29
;初始值: 681ec0bf00000000
;mac结果: 65bca40c
;update binary
SEND 04D600010c2a8dfaf2ae9e4e2965bca40c
ASSERT 9000
;读文件
SEND 00 B0 00 01 08
ASSERT 00112233445566(P)
BREAK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -