- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 C 语言,所以我没有 Java 工具和自动解析 APDU 命令响应的所有函数。我想读取所有类型的智能卡。我必须解析 GET PROCESSING OPTIONS 的响应并获取每张卡的 AFL(访问文件定位器)。
我有三种不同情况的三张牌:
77 12 82 2 38 0 94 c 10 2 4 1 18 1 1 0 20 1 1 0 90
77 12 82 2 39 0 94 c 18 1 1 0 20 1 1 0 28 1 3 1 90
80 a 1c 0 8 1 1 0 18 1 2 0 90
案例A)
我有三种不同的 AFL:10 2 4 1
、18 1 1 0
、20 1 1 0
所以我发送 00 B2 SFI P2 00
其中 SFI 是 10>>3 (10 是第一个 AFL 的第一个字节)并且 P2 是 SFI<<3|4 这样我得到了正确的 PAN 代码我的卡。
案例 B)
我有三种不同的 AFL:18 1 1 0
、20 1 1 0
、28 1 3 1
。所以我发送 00 B2 SFI P2 00
以与案例 A 相同的方式构建,但我得到每个 AFL 的响应 6A 83。
案例 C)我有两个不同的 AFL: 8 1 1 0
, 18 1 2 0
但我无法自动解析它们,因为之前的响应没有相同的 TAG。如果我使用那些 AFL 就可以了,我可以获得卡的 PAN 代码。
如何使用通用方法读取正确的 AFL,以及如何使用这些 AFL 发出正确的命令?
最佳答案
这里是AFL的解码:
您通常会得到 4 字节的倍数的 AFL。将您的完整 AFL 分成 4 个字节的 block 。让我们以 1 个 Chunk 为例:AABBCCDD
AA -> SFI(解码说明如下)
BB -> 此 SFI 下的第一条记录
CC -> 此 SFI 下的最后记录
DD -> 离线数据认证涉及的记录(暂不供您使用)
以你为例 10 02 04 01 18 01 01 00 20 01 10 00
block 是 10 02 04 01, 18 01 01 00, 20 01 10 00
10 02 04 01 -->取第一个字节 10 : 00010000 从 MSB 中取初始 5 位 --> 00010 表示 2 : 表示 SFI 2
Taking 2nd Byte 02 : SFI 2 下的第一条记录是 02
占用第 3 个字节 04:SFI 2 下的最后一条记录是 04
由于没用,所以不包括4字节解释
总结:SFI 2 包含记录 2 到 4
读取记录命令将如何形成:
APDU 结构:CLA INS P1 P2 LE
CLA 00
INS B2
P1 (Rec No)02 (SInce 在这个 SFI 2 初始记录中是 02)
P2 (SFI) SFI 02 : 以 5 位二进制数字 00010 表示 SFI,然后在末尾附加 100 : 00010100 : 十六进制 14所以 P2 是 14
LE 00
APDU 读取 SFI 2 Rec 2 : 00 B2 02 14 00
用于读取 SFI 2 Rec 3 的 APDU:00 B2 03 14 00
APDU 读取 SFI 2 Rec 4 : 00 B2 04 14 00
现在,如果您尝试阅读 Rec 5,由于此 Rec 不存在,在这种情况下您将获得 SW 6A83。
对所有 block 使用相同的过程来识别可用的记录和 SFI通过这个机制,你可以编写函数来解析 AFL
关于apdu - 芯片 EMV - 为每张智能卡获取 AFL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50157927/
我正在尝试使用 afl-fuzzer 对程序进行模糊测试。但是,我需要模糊器将输入文件提供给带有特定标志的程序(例如 --flag input-file.xxx)。有没有办法做到这一点 ?谢谢! 最佳
我是一名硕士生,致力于复制论文的结果:https://www.microsoft.com/en-us/research/publication/not-all-bytes-are-equal-neur
我试图在过去几个小时内编译 afl llvm_mode,但没有成功。 我从 6.0 到 3.6 下载了许多 clang+llvm 版本,并确保 bin 在我的路径中。然后我编译了afl,cd编辑到 l
继续:EMV Reading PAN Code 我正在使用 C 语言,所以我没有 Java 工具和自动解析 APDU 命令响应的所有函数。我想读取所有类型的智能卡。我必须解析 GET PROCESSI
我想用 afl 模糊我的应用程序,但用 afl-gcc 替换 gcc 后,我仍然收到错误:[-] PROGRAM ABORT : No检测到仪器。 我创建了一个简单的 C 程序来调试该问题: #inc
我有这个警告 (Last new path : none yet (odd, check syntax!)) 在我尝试对文件进行模糊测试后显示为红色。我不知道为什么会这样,我用谷歌搜索没有答案。 我的
我想在没有 root 访问权限的 Linux 系统上运行 American Fuzzy Lop (AFL) 模糊器。当我这样做时,发生的第一件事是它给我一条错误消息,要求我修改 /proc/sys/k
我在这里尝试在 1.0.1g 之前的 openssl 版本上重现 Heartbleed 错误,因此我选择了 openssl 1.0.1f。我安装了 AFL-FUZZ,然后安装了 openssl。在th
我是一名优秀的程序员,十分优秀!