應公司需要,開發了一個CPU卡的髮卡工具

前言

應公司需要,開發了一個CPU卡的髮卡工具。 目的是對同方、復旦、伯通的cpu卡進行建文件結構的操作。

寫了一天,目前僅支持復旦的(同方、伯通的庫還沒有進行集成)。

先發個簡單的使用界面及其髮卡腳本規範。具體內容隨後貼上。



部分發卡腳本規範:

1.註釋示例
#這個是註釋
2.變量聲明示例:聲明整形變量a,聲明字符串變量s1,聲明字符串變量s2
DEF.>int $a;
DEF.>string $s1;
DEF.>string $s2;
3.尋卡示例,。返回結果爲sn,不足7位用0補全 。 將結果賦值給s
DC_CARD.>('0',7)-->$s1;
4.復位示例..返回值賦值給$s2
DC_PRO_RESTHEX.>-->$s2;
5.外部認證..
Ex_Auth,>("000000000000");
6.拼接字符串
CONSTR.>("1234",$s1)-->$s2;
CONSTR.>("1234",@a)-->$s2;
7.賦值
VAR.>(123)-->$i;
VAR.>("234234")-->$s2;
8。發送指令
APDU.>
9.MAC計算
APDU_MAC.>
10.改密填密
KEY_ENMAC.>
11.密鑰分散
GETKEY.>


其他:
1.每行腳本必須以“;”結尾。自動檢測
2.任意變量可以在前面加“@”轉換爲字符串 ,如 int a; @a爲字符串 。 @123爲字符串  @a3424 等同於“a3424” 
3.變量名不可以爲數字開頭。自動檢測。變量必須爲$開頭

髮卡腳本簡單示例:

#變量定義
DEF.>string $UID;
DEF.>string $ATS;
DEF.>string $key_FF;
DEF.>int $flag;

#變量賦值
VAR.>("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")-->$key_FF;
VAR.>(1)-->$flag;

#密鑰分散
GETKEY.>($key_FF,"0634");

#尋卡
DC_CARD.>('0',8)-->$UID;

#卡片復位
DC_PRO_RESTHEX.>-->$ATS;

#外部認證
Ex_Auth.>($key_FF);

#擦除卡片
APDU.>("800E000000");

#建立0000密鑰文件
APDU.>("80E00000073F003001FAFFFF");

#明文添加卡片主控密鑰
APDU.>("80D4010015F9F0F0AA33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");

#密文添加卡片維護密鑰
KEY_ENMAC.>("84D401001C","15F6F0F0AA33","8000",$key_FF,$key_FF);

#建立0001變長記錄文件 權限:讀自由寫明文+MAC
APDU.>("80E0000107AC0050F0F0FFFF");

#寫0001文件,寫用明文+MAC的方式
APDU.>("04DC010C177011610F4F09A0000000038698070150021001",$key_FF,$flag);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章