2017-04-12 6 views
1

ISO 7816-4 APDU 명령을 사용하여 Mifare DESFire 카드에서 데이터를 읽고 쓰려고합니다. 나는 계단을 따랐다 :Mifare DESFire 카드에서 데이터를 읽거나 쓰는 중 오류가 발생했습니다.

  1. {00,A4,04,00,07,D2,76,00,00,85,01,00}를 사용하여 신청서를 선택한다. 응답을 9100으로받습니다.
  2. 그러면 {00,A4,00,00,02,3F,00}을 사용하여 파일을 선택하고 응답을 9100으로받습니다.
  3. 그런 다음 {00,B0,00,00,03} 명령을 사용하여 파일을 읽으려고 시도하고 코드 6A86에 오류가 발생합니다.

이제 카드의 데이터를 읽고 쓰는 정확한 명령을 알고 싶습니다. 나는 여전히 읽기/쓰기 명령에서 P1과 P2의 의미를 얻지 못한다고 생각합니다. 이미 여러 가지 조합을 시도했지만 항상 오류가 발생합니다. 6A86, 6982

답변

0

성공시 상태 단어 9000이 표시된다고 가정합니다. ISO/IEC 7816-4 기본 산업 간 명령어 APDU를 사용할 때 실제로 9100을 수신하면 매우 이상한 일이 일어나야합니다. 91xx ISO/IEC 7816-4 랩핑 된 명령 세트를 사용할 때 (즉, 명령 APDU의 클래스 바이트가 0x90으로 설정된 경우)에만 상태 단어를 리턴해야합니다.

의 당신이 현재 무엇을 살펴 보자 :이 카드는 ISO/IEC 7816-4 프레임 모드에 있는지 확인합니다 자동으로 선택

 
00 A4 0400 07 D2760000850100 
:

  1. 당신은 내가 MIFARE DESFire ISO AID D2760000850100를 선택 시작 MF (마스터 파일, 즉 PICC 레벨 어플리케이션).

  2. 그런 다음, 다시 한 MF (PICC 수준 응용 프로그램)을 선택 (!) :

     
    00 A4 0000 02 3F00 
    
    그래서 당신이 마지막으로 4 단계

  3. 후 같은 수준에서 지금, 당신은 3 바이트 시작을 읽으려고 READ BINARY APDU :

     
    00 B0 0000 03 
    
    을 사용하여 현재 선택된 파일의 오프셋 0에 있습니다. 현재 선택된 파일이 MF이므로 이진 데이터를 읽을 수 없습니다. MF에는 데이터 부분이 없습니다. 결과적으로 카드는 MF (상위 비트가 가리키는 현재 선택된 파일)에서 오프셋 0 (P1 | P2 = 0x0000)에서 읽음을 알려주기 때문에 오류 코드 6A86 ("잘못된 매개 변수 P1 및/또는 P2" P1이 0 임)는 의미가 없습니다. 바이너리 데이터를 읽을 수 있습니다 전에

따라서, 당신은 실제 데이터 부분을 포함 아마 다른 응용 프로그램에 위치한 초등학교 파일 (EF), (전용 파일, DF)을 선택해야합니다. 명시 적으로 EF (및 필요한 경우 DF)에 대한 SELECT 명령을 보내거나 첫 번째 읽기 바이너리 명령의 P1에서 짧은 파일 식별자를 사용하여 EF를 암시 적으로 선택하여이 작업을 수행 할 수 있습니다. 후자의 경우 P1의 상위 비트를 1로 설정하여 P1의 나머지 부분이 짧은 파일 ID를 인코딩 함을 나타냅니다. 두 경우 모두에서 읽으려는 파일 및 응용 프로그램의 파일/응용 프로그램 ID를 알아야합니다.

+0

마이클에게 도움을 주셔서 감사합니다. 아직까지 새로운 점이 있습니다. MF 또는 EF가 무엇인지, 간단한 읽기/쓰기 작업을 위해 EF 파일을 선택하는 방법 및 짧은 파일 식별자는 무엇입니까? – Neo

+0

MF, DF 및 EF에 대한 내용을 읽었으나 이제는 MF를 먼저 선택하고 DF 및 EF로 진행하거나 EF로 직접 읽기/쓰기 작업을 할 수 있습니다.또한 선택 파일 명령 {00, A4,00,00,02,3F, 01}을 실행하는 동안 x6A86 오류가 발생합니다. 이는 파일을 찾을 수 없음을 의미합니다. 또한 3F02,3f10,3f11과 같은 다른 많은 파일 번호도 사용하려고합니다. 3f03 등.하지만 모든 경우에 x6A86 응답을 얻습니다. 선택하는 명령을 실행하기 전에 응용 프로그램이나 디렉토리를 선택하지 않습니다. 올바른 방법입니다. – Neo

관련 문제