M1 S50的存儲器結構:http://www.cnblogs.com/worldsing/archive/2013/05/09/3068256.html,訪問時以塊為單位進行讀寫。
M1卡的每一個扇區都可以設置兩個獨立的密碼,用來保護本扇區的數據,只有根據本扇區第3塊的控制字要求配合指定的密碼才能對本扇區進行讀寫。
出廠的每個扇區的第3塊數據為:
按照S50非接觸式IC卡 學習筆記 的內容用戶程序可對M1卡的操作權限為:
所以M1卡出廠時各區第0~2數據塊操作權限為:
解讀:新卡操作時只要對該區的任意塊進行密碼A或是密碼B的驗證,就可以對該區的0~2塊進行讀寫
所以M1卡出廠時各區第3控制塊操作權限為:
解讀:只有驗證密碼A正確了,才能做以下操作:
1、修改密碼A;
2、修改控制字;
3、修改密碼B,讀出密碼B。
改密碼時先讀出之前的控制字,組合成一個數據塊后寫到數據塊3里。
實驗:
給M1卡輸入錯誤的密碼,經過20多次的驗證,M1並沒有出實鎖死情況,而讀出各區的第3塊數據時(即讀出密碼A、控制字、密碼B)結果是一直是:
0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0x06 0x80 0x69 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
與上述控制字的訪問權限相符;