-
-
[原创]KCTF2020 智能设备Crackme 题目提交
-
发表于: 2020-10-29 22:55 2202
-
题目类型:
智能硬件Crackme题目
flag:2296dc2f09144713
设计: 使用64位椭圆曲线,设计为弱私钥,私钥可在3分钟内爆破
曲线参数如下:
p = 0xc021a12750820335
a = 0x2b7874ef148937d1
b = 0x496412a7502c4cd5
G = (0x4d8acf91aac0ba96, 0x79e9ac784679a36d)
n = 0xc021a1277f8b7ee7
flag为一个固定的签名(ECC签名中的s),检查flag过程为ECC验签过程中的检查s过程。
验签过程在duktape虚拟机中运行。
题目需要在arm模拟器下运行.运行命令为:
qemu-system-arm -M versatilepb -dtb ./versatile-pb.dtb -kernel zImage -append "console=ttyAMA0" -nographic
命令在ubuntu18.04环境下测试通过.qemu版本4.2.1.
当输入错误时无显示,当输入正确时显示"you got it"
正确flag 的计算时间约为50秒左右.
- 破解
从zImage中提取出k2020程序,直接运行strings,可以得到部分曲线参数。
跟踪验签过程得到公钥:(0xb520ee455c4e5c68, 0x8d2984eb2d7fd1ce)
根据曲线参数和公钥爆破得到私钥: 125591, 使用sage运行爆破时间在2分钟左右.
跟踪验签过程得到k值130516937431,和待验签数据 0x4b43544632303230
就能根据签名过程计算出flag
参考:
https://csrc.nist.gov/csrc/media/events/workshop-on-elliptic-curve-cryptography-standards/documents/papers/session6-adalier-mehmet.pdf
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)