我有一张 JCOP 卡。 发出了错误的命令来修改其 ATR。 可怕的是该卡似乎根本不返回 ATR。 现在该卡正在 Windows 应用程序中响应:
<code>
SCardConnect() ERROR: The chip card is not responding to a reset.
</code>
使用
<code>
SCardConnect(... SCARD_SHARE_(SHARED|DIRECT), SCARD_PROTOCOL_RAW, ...);
</code>
SCARD_SHARE_ 失败...
我在这里找到:
对于 SCARD_PROTOCOL_RAW,wincard.c 使用 IFDControl_v2 而不是 IFDTransmit。
请告诉我是否值得基于 pcsc-lite 编写一个 Linux 应用程序
做同样的任务?
我想以某种方式发出 2 个命令:
1. 00A4040010 [传输钥匙](打开卡)
2. 00F00000(启动卡)
这些肯定会重置ATR,让我复活这张卡!
有人知道重置此类卡的另一种方法吗?
如果您有非接触式或双界面卡,请尝试非接触式读卡器,其中 ATR 混乱不应影响打开卡连接的能力。
我知道这是一个旧线程,但想帮助其他有同样问题的人。了解除了历史字节之外,ATR 的主要目的是告诉 PC/SC 读卡器如何与卡通信。当您将卡插入读卡器时,读卡器首先看到的是 ATR,它使用 ATR 字符串自动协商通信协议(T=0 或 T=1)、电压和频率。这种自动协商基于前 4 个字节,如果这些设置中的任何一个不满足智能卡芯片的功能,它就无法正确响应读卡器并且无法进行通信,即读卡器 LED 将闪烁不稳定,并在大约 10 秒后放弃尝试通信(时间以读者为准)。直接回答你的问题,如果你把你的卡放在这种情况下,读卡器不知道该怎么办,你的卡就会变砖,因为它无法再与之对话。
现在,如果您有一个没有自动协商功能的读卡器,并且您可以手动转换到您放置的卡的状态,那么可以使用正确的命令与它通信。