M1卡修改各區塊控制位值和數據


 

 

(一),以常用設置"08 77 8F 69"控制條件為例,先搞清楚它――具有的訪問權限。
1、對"08 77 8F 69"值進行計算,該值定位於各區塊3的6,7,8,9四個字節內,字節6=08,字節7=77, 字節8=8F,   字節9=69(默認值,不予計算)。
2、例如:字節6=08,對應其二進制值=00001000, 則對6,7,8這三個字節進行二進制轉換結果見下表:

字節6 = 0 0 0 0 1 0 0 0 字節7 = 0 1 1 1 0 1 1 1 字節8 = 1 0 0 0 1 1 1 1
 


3、參照表2及表4算法,字節6的全部二進制值取反,字節7的低四位二進制值取反,字節8不變,得到:

字節號 對應二進制值 位置 高4 位置 低4
字節6 
字節7 
字節8
0 0 0 0 1 0 0 0
0 1 1 1 0 1 1 1
1 0 0 0 1 1 1 1
C2Y
C1Y
C3Y
1 1 1 1
0 1 1 1
1 0 0 0
C1Y
C3Y
C2Y
0 1 1 1
1 0 0 0
1 1 1 1
所 屬 塊  塊3 塊2 塊1 塊0   塊3 塊2 塊1 塊0
 

 
4、對以上6,7,8字節的存取/控制二進制已取反值,依照表2,表4塊位轉換為各塊控制值,如下表:

3 字節7,字節6,字節8 = C13C23C33 = C1YC2YC3Y = 0 1 1
2
1
0
字節7,字節6,字節8 = C12C22C32 = C1YC2YC3Y = 1 1 0
字節7,字節6,字節8 = C11C21C31 = C1YC2YC3Y = 1 1 0
字節7,字節6,字節8 = C10C20C30 = C1YC2YC3Y = 1 1 0
 

注意: 高4位的各塊值=低4位的各塊值時,其值可用。高4位值≠低4位值時,其值不可用!
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"的訪問條件及其改寫步驟,對用戶的其它控制條件亦可參照應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM