有没有办法使用 libnfc 只编写 Mifare Classic 的特定扇区?

Is there a way to write just specific sector of Mifare Classic using libnfc?

所以我已经使用 mfoc:

成功提取了 Mifare Classic 1k 密钥
mfoc -O dump.mdf

现在我将文件复制到 dump-new.mdf 中并用相应的值修改它。我 只打算编辑扇区 02,所以我进行了更改,保存文件并使用

继续上传到卡
nfc-mfclassic w b dump-new.mdf dump.mdf f

据我了解,这会在 dump.mdf 中每隔 4 个块查找一次,提取密钥 B(命令中 w 之后的 b),并使用此密钥写入 dump-new.mdf内容放入卡上对应的sectors/blocks。

现在我碰巧通过将可能已损坏的文件版本写入卡上来阻止扇区 00(如前所述 here 未正确设置访问位),因此为了防止出现这种情况未来,

  1. 我只想写入特定扇区。怎么做到的?

  2. 如果不可能,如果某些扇区没有为 B 而只是为密钥 A 启用写入,会发生什么情况。将 arg b 放入 nfc-mfclassic 调用将导致错误.我应该如何将卡的图像上传回卡?按特定顺序使用密钥 A、密钥 B 或两者?

谢谢大家

经过几天的研究和使用 libnfc,答案是否定的,这是不可能的。始终使用卡的转储并使用所需的值对其进行编辑,然后使用 nfc-mfclassic

保存并上传到卡