2013-01-31 4 views
6

मैंने गलती से अपने MIFARE क्लासिक 1k टैग में से एक के सेक्टर 1 ब्लॉक 7 को अधिलेखित किया है। यह परीक्षण के लिए चाहिए था और 16 बाइट डाटा है कि मैं ब्लॉक 7 पर लिखा था नीचे दिखाया गया है:अधिलेखित अनुमति बिट्स के साथ मिफ़ेयर क्लासिक 1k में सेक्टर को पुनर्प्राप्त करें

    :

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

    तो गलत नहीं, ऐसा करके, मेरी पहुँच कुंजी और अनुमति बिट्स निम्नलिखित के रूप में बन गए हैं

  • की-एक: 0xaa 0xaa 0xaa 0xaa 0xbb 0xbb
  • की-बी: 0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
  • Permisssion बिट: ->0xbb 0xbb 0xcc

मैंने Key-A और Key-B का उपयोग करने की कोशिश की है जैसा कि ऊपर दिखाया गया है sector 1 में पढ़ने/लिखने के लिए। लेकिन अब मैं sector 1 में किसी भी ब्लॉक तक पहुंचने (पढ़ने या लिखने) में सक्षम नहीं हूं।

मुझे अन्य सभी क्षेत्रों (जैसे sector 0 और sectors 2-15) की कुंजी पता है और उन्हें एक्सेस करने में सक्षम है।

स्थिति को ध्यान में रखते हुए, मैं जानना चाहता हूं कि sector 1 या block 7 को रीसेट करने का कोई तरीका है या नहीं। बहुत धन्यवाद।

अद्यतन:

मैंने पुष्टि की है कि दोनों की-ए और कुंजी-बी के रूप में ऊपर दिखाए गए सही हैं और मैं उन दोनों के साथ कार्ड के लिए प्रमाणित कर सकते हैं। इसके अलावा, जैसा Mifare Classic specification (screenshot) प्रति, मेरी पहुँच बिट्स इस प्रकार हैं:

 
Byte 6 = 0xbb = 0b10111011 
-------------------------- 
C2_3 C2_2 C2_1 C2_0 C1_3 C1_2 C1_1 C1_0 
    1 1 0 1 1 1 0 1 

Byte 7 = 0xbb = 0b10111011 
-------------------------- 
C1_3 C1_2 C1_1 C1_0 C3_3 C3_2 C3_1 C3_0 
    1 1 0 1 1 1 0 1 

अब, विनिर्देश/स्क्रीनशॉट पर विचार, C1_3, C2_3 और C3_3 बिट्स sector-trailer को पढ़ सक्षम/लेखन पहुँच। मेरे मामले में, ब्लॉक 7 (सेक्टर 7 के लिए ट्रेलर) के लिए वे सभी 1 पर सेट हैं। क्या मुझे इस ब्लॉक में लिखने की पहुंच नहीं होनी चाहिए?

उत्तर

3

Mifare क्लासिक विनिर्देश आप लिंक में कहते हैं:

टिप्पणी: प्रत्येक स्मृति उपयोग के साथ आंतरिक तर्क प्रारूप का उपयोग कर सकते की स्थिति का पुष्टि करता है। यदि यह प्रारूप उल्लंघन का पता लगाता है तो पूरे सेक्टर अपरिवर्तनीय रूप से अवरुद्ध है।

आपकी एक्सेस बाइट प्रारूप को सत्यापित नहीं करती है। folowing तालिका में ~ मतलब है उल्टे

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. वे पूरक नहीं हैं। प्रारूप सत्यापित नहीं है, क्षेत्र अपरिवर्तनीय रूप से अवरुद्ध है।

उसी दस्तावेज़ में एक तालिका (तालिका 7) है जो दिखाती है कि कुंजी ए हमेशा पढ़ा जा सकता है। शायद यही कारण है कि आप प्रमाणित कर सकते हैं।

+1

धन्यवाद। मैंने पहले ही ऐसा निष्कर्ष निकाला है। आपका जवाब इसे स्पष्ट बनाता है। – gsbabil

6

एक बार एक्सेस कंट्रोल बिट्स सही तरीके से कॉन्फ़िगर नहीं किए जाते हैं (उदाहरण के लिए, बिट्स जो एक-दूसरे के पूरक होने वाले हैं, पूरक नहीं हैं, जैसे आपके मामले में), इस क्षेत्र को अब और नहीं पहुंचा जा सकता है।

संबंधित मुद्दे