※ 引述《evileva (小黑要乖喔)》之銘言:
: 最近在撰寫一個讀卡機程式,翻閱了網路上的資料,
: 知道如何讀取金融卡、健保卡、自然人憑證,
: 也都能成功讀取(其實只要參數下的對都沒有難度)。
: 但是對於讀取過程中所下的APDU COMMAND不是了解的很透徹,
: 嘗試的對空白卡下SELECT FILE COMMAND
: EX:
: BYTE pbSendBuffer[] = {0x00,0xA4,0x00,0x00,0x02,0x3F,0x00};// Select MF
^^
Select 是 00 A4 04 00 ..
卡片上確定有 Applet 嗎?
請愛用舊版的 Eclipse Smart Card 工具
不然就隨便找找可以下 APDU Command 的工具吧
: rv = SCardTransmit(hCard, &SendPci, pbSendBuffer, dwSendLength,
: &RecvPci, pbRecvBuffer, &dwRecvLength);
: String sw1 = IntToHex(pbRecvBuffer[dwRecvLength-2] , 2);
: String sw2 = IntToHex(pbRecvBuffer[dwRecvLength-1] , 2);
: 上面pbSendBuffer所下的命令,應該是select卡片中的Master File
: 但是我所得到的回傳值sw1和sw2卻是6A 86,查詢了標準規格得知,
: 這個response代表 Incorrect parameters P1-P2
: 也就是我下的參數錯誤(0x00 , 0x00),我不知道這問題出在哪裡,
: 網路上所查到的資料,參數也都是這樣下,
: 還是空白卡一開始的時候是沒有MF存在嗎?
: 開發平台: BCB 6
: 補充說明:
: 希望有前輩高人不吝指教,我主要只是要能對空白卡做讀寫的動作,
: 但卻被這問題卡住一整天..,希望大家多幫忙了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.46