我正在努力从VISA(例如PAN,有效期......)信用卡中获取有用数据,使用我遇到的AID列表。
我已经能够手动访问所有数据。使用下一个教程:http://www.openscdp.org/scripts/tutorial/emv/reademv.html
>>00 A4 04 00 07 A0 00 00 00 03 10 10 00
在ASCII中:
<<o<EM>„<BEL> <0><0><0><ETX><DLE><DLE>¥<SO>P<EOT>VISA¿<FF><ENQ>ŸM<STX><VT><LF><0>
十六进制:
<<6F 19 84 07 A0 00 00 00 03 10 10 A5 0E 50 04 56 49 53 41 BF 0C 05 9F 4D 02 0B 0A 90 00
之后我用了:
>>33 00 B2 01 0C 00 //sfi1, rec1
...
...
>>33 00 B2 10 FC 00 //sfi31, rec16
我继续学习本教程并了解到获取数据的正确方法是使用GPO(获取处理选项)命令。然后尝试了下一步:
>>80 A8 00 00 0D 83 0B 00 00 00 00 00 00 00 00 00 00 00 00 // pdo = 83 0B 00 00 00 00 00 00 00 00 00 00 00 which suposse to be the correct one for VISA.
<< 69 85
因此不满足使用条件。
>> 80 A8 00 00 02 83 00 00 //pdo= 83 00 that should work with every non visa card
<< 80 0E 3C 00 08 01 01 00 10 01 04 00 18 01 03 01 90 00
如果这个回答是正确的,并且它看起来很好,因为它从80开始到90 00结束,我无法识别AFL,我认为这将使我有可能确定PAN,到期日期..有人能帮助我吗?
答案 0 :(得分:4)
您在响应select命令(00 A4 0400 07 A0000000031010 00
)时收到的FCI解码为
6F 19 (File Control Information (FCI) Template) 84 07 (Dedicated File (DF) Name) A0000000031010 A5 0E (File Control Information (FCI) Proprietary Template) 50 04 (Application Label) 56495341 ("VISA") BF0C 05 (File Control Information (FCI) Issuer Discretionary Data) 9F4D 02 (Log Entry) 0B0A (SFI = 11; # of records = 10)
此FCI不包含任何PDOL(处理选项数据列表)。因此,您需要假设PDOL的默认值(这是您的卡类型的空列表)。因此,GET PROCESSING OPTIONS命令中与PDOL相关的数据字段必须为空:
83 00
其中0x83是PDOL相关数据的标记,0x00是零字节长度。
因此,正确的GPO命令(正如您已经发现的那样):
80 A8 0000 02 8300 00
您收到了回复
800E3C00080101001001040018010301 9000
这解码为
80 0E (Response Message Template Format 1) 3C00 (Application Interchange Profile) 08010100 10010400 18010301 (Application File Locator)
因此,应用程序文件定位器包含以下三个条目:
08010100
:SFI = 1,第一条记录= 1,最后一条记录= 1,离线数据认证涉及的记录= 0 10010400
:SFI = 2,第一条记录= 1,最后一条记录= 4,离线数据认证涉及的记录= 0 18010301
:SFI = 3,第一条记录= 1,最后一条记录= 3,离线数据认证涉及的记录= 1 因此,您可以使用READ RECORD命令读取这些记录:
00 B2 010C 00 00 B2 0114 00 00 B2 0214 00 00 B2 0314 00 00 B2 0414 00 00 B2 011C 00 00 B2 021C 00 00 B2 031C 00