我有智能卡,有什么方法可以找出安装在它上面的东西吗?可能上面有applet,但我不能用APDU命令选择它。
答案 0 :(得分:2)
你在谈论小程序,所以我在这个答案中假设你正在与Java卡交谈。 Java Card本身没有指定任何类型的发现方法。
全局平台规范确实包含检索此类数据的方法。要检索卡上的小程序,您需要发送GET STATUS
APDU(免费提供的GP 2.2.1规范的第11.4段)。几乎所有Java Card实现都实现了Global Platform。请注意,您需要先向Global Platform卡管理器进行身份验证,然后才能发出这些命令。为此,显然,您需要一个有效的身份验证密钥集。
找出applet上 selectable 的另一个技巧是向卡发出多个SELECT by NAME
命令。您可以将此限制为要测试的一组AID。一个小技巧是只使用AID的前5个字节,称为RID。注册的RID都以A000000000
开头,然后按顺序递增。
找到小程序后,您可以通过向(公司特定的)RID添加字节来找出它是常规AID - 只需测试所有256个值。您可能希望自动执行此操作...许多实现在选择后也会返回完整的AID;但这是applet特定的(SELECT by Name是响应是由Applet process
方法生成的。)