首页
社区
课程
招聘
[分享]第五题:申时·忆海倒带 writeup
发表于: 21小时前 117

[分享]第五题:申时·忆海倒带 writeup

21小时前
117

附件中的 readme.txt 只说明了文件 SHA1 和判胜条件:

目标是分析 D:\cm\cm.exe,得到 88 位十六进制序列号。

程序要求输入 88 个十六进制字符,解码后得到 44 字节。

设解码后的字节为 buf[44]

0x4041bc 附近,程序对 44 字节执行异或,结果必须为:

0x404218 附近,程序执行:

实际有效输入位于校验区域开头,后续区域为零,因此最终要求:

主循环位于 0x40450d

查表对象大致为:

0x404870 的关键逻辑是:

注意这里的 jb 是无符号比较,但对于有效输入 0x01..0x80index0..0x7f,会进入排列查表分支。

permdata 中反查目标字符串:

得到最终查表输入:

也就是:

前 28 字节直接来自输入,最后 16 字节会在后续变换中被覆盖。

尾部变换函数位于 0x403500

输入序列号的最后 16 字节会先被转成 32 个 ASCII 十六进制字符,再解析为大整数,执行 RSA 模幂:

从静态数据中恢复参数:

因式分解:

计算私钥指数:

目标查表输入的最后 16 字节为:

因此反解:

尾部原始 16 字节为:

前 28 字节为:

尾部 16 字节为:


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

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