Восстановление сектора в Mifare Classic 1k с перезаписанными битами разрешений

я ошибочно перезаписал сектор 1 блок 7 одного из моих тегов Mifare classic 1k. Он предназначен для тестирования, и 16-байтовые данные, которые я написал в блоке 7, показаны ниже:

0xaa 0xaa 0xaa 0xaa 
0xbb 0xbb 0xbb 0xbb
0xcc 0xcc 0xcc 0xcc  
0xdd 0xdd 0xdd 0xdd

если не ошибаюсь, сделав это, мои ключи доступа и биты разрешений стали следующими:

  • Клавиша-A:0xaa 0xaa 0xaa 0xaa 0xbb 0xbb
  • Ключ-B:0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
  • Разрешения Биты: --> 0xbb 0xbb 0xcc

Я пробовал использовать Key-A и Key-B как показано выше, чтобы читать / писать block 7 на sector 1. Но я больше не могу получить доступ (без чтения или записи) к любому блоку в

2 ответов


в спецификации Mifare classic, которую вы связали, говорится:

Примечание: С каждым доступом к памяти внутренняя логика проверяет формат условий доступа. Если он обнаруживает нарушение формата, все сектор необратимо заблокирован.

ваши байты доступа не проверяют формат. В следующей таблице ~ означает перевернутый

Byte 6 
--------------------------
~C2_3 ~C2_2 ~C2_1 ~C2_0 ~C1_3 ~C1_2 ~C1_1 ~C1_0
  1     0     1     1     1     0     1     1

Byte 7 
--------------------------
 C1_3  C1_2  C1_1  C1_0 ~C3_3 ~C3_2 ~C3_1 ~C3_0
   1     0     1     1     1     0     1     1

Byte 8 
--------------------------
 C3_3  C3_2  C3_1  C3_0  C2_3  C2_2  C2_1  C2_0
   1     1     0     0     1     1     0     0

Так, например, C2_3 = 1 и ~C2_3 = 1. Они не дополняют друг друга. Формат не проверено, сектор irreversibily заблокирован.

в том же документе есть таблица (таблица 7), которая показывает, что Кейя всегда может быть прочитана. Возможно, это причина, по которой вы можете аутентифицироваться.


Как только биты управления доступом не настроены правильно (например, биты, которые должны быть дополнением друг друга, не дополняют друг друга, как в вашем случае), сектор больше не может быть доступен вообще.