← 返回首页

空白卡上的自由编程

发布时间: 2026-04-09 19:49(北京时间)

摘要: 作者获得一张可编程的智能卡(J3R200),描述了其初始配置和功能,包括默认密钥、状态和预装包,允许自由读写和测试。重点在于能在Java环境下编译并安装自定义Applet,实现如生成任意长度随机数和使用HMAC-SHA256加密等高级操作,体现出技术探索的自主性和乐趣。整体语调技术性强且略带兴奋。

标签: 智能卡编程, Java Applet, 加密技术, 硬件实验, 技术探索, 自主性, 兴奋

字数: 592

原文链接: /7402396589/QA27H8iQs

斥巨资买的5张 J3R200 到了,T=1 unFuse,所以可以随便折腾了(图1)。
enc/mac/kek 都是默认的 404142434445464748494A4B4C4D4E4F
这个默认key其实就是从 @ 到 O 的ASCII码的十六进制。

从 GlobalPlatformPro 仓库下载到 gp.exe 插上卡后执行 gp -l
可以看到ISD是OP_READY状态,Privs是啥都有,说明我可以自由地读写和测试。甚至可以发送 CardTerminate 指令然后损失20元。还看到卡片预载了不少PKG,都是LOADED状态,后面可以都玩玩。

接下来我就可以在Java环境下编译自己的Applet,然后使用 gp -install xxx.cap 来安装。
cap 的全称是 Converted Applet ,也就是编译后的JAR二进制包。

还记得上午的过期信用卡,发送一次 GET CHALLENGE 后只能拿到8个字节的随机数。但在这张“空白卡”上,想要多少字节就多少字节,全看我的Applet怎么写,想想还是蛮爽的。

HMAC-SHA256也能玩,javacard.security.Signature类里面就有Signature.ALG_HMAC_SHA_256,而且按我理解是硬核加密,也带有一些防侧信道攻击的防护。

image

image