首页
社区
课程
招聘
[原创]第五题:申时·忆海倒带 WP
发表于: 3天前 4

[原创]第五题:申时·忆海倒带 WP

3天前
4

程序读取一行序列号,要求长度为 88,并限制字符属于数字或大写字母。真正可用的字符是十六进制字符,因此序列号表示 44 字节数据。

程序包含 admin123r3v3rs3!password 以及关于异常处理的提示字符串。相关函数只比较这些字符串、计算无关返回值或触发断点,没有参与最终判定,属于诱饵逻辑。

程序实现了一套大整数运算。每个大整数包含有效字数以及一个置换存储容器。容器的核心字段可以整理为:

访问逻辑下标 i 时,程序实际返回 data[perm[i]]perm 使用固定状态的 xorshift32 洗牌生成。分析常量时必须先读取置换表,再按逻辑下标取数据,直接查看 data 开头会看到大量无效零值。

输入按十六进制逐字符执行 value = value * 16 + digit,随后按大端序还原成 44 字节。程序先检查两个完整性条件:

最终比较的目标明文为:

每个待比较字节经过如下变换:

枚举合法的单字节下标并反查目标明文,可以唯一得到变换前的 44 字节:

前 28 字节就是序列号解码后的前 28 字节。后 16 字节来自一次固定 RSA 模幂,会覆盖序列号解码结果的最后 16 字节。

从置换存储的大整数中按逻辑顺序恢复出以下常量:

程序计算 c = m^e mod n。模数分解为:

计算私钥指数并解密:


传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回