-
-
[原创]2019 Q2 第十题 开启时间之轮 分析
-
发表于:
2019-6-23 20:02
7255
-
[原创]2019 Q2 第十题 开启时间之轮 分析
win32对话框程序,按钮事件处理函数为0x403db
从4个大数字符串里随机选取一个:
input长度在[6,145]中:
进入check_format做格式验证:
1.input分为两部分,由"XXXX"分隔。
2.后半部分必须为数字,且第一个数字不能为0。(应该是防止多解用的)
将输入的第一部分,第二部分和随机选取的大数存在自定义的字符串结构中:
由3个字符串和其他一些数据组成了新的结构,传入最后的校验函数ctf_final_check
ctf_final_check的返回值传入一个变形的b64函数里,生成最后的提示信息字符串:(提示成功的字符串对应着final_check的返回值为0)
ctf_final_check:
使用到的大数结构:
把3个字符串转换为数字,进行几个个关键校验:(省略了一些简单的变换步骤)
BSGS解小区间上的离散对数:
跑了10多分钟跑出来 x_b25 = 79821823136933
经验证 x_b25同时也满足其他3组离散对数方程。
解第一部分:
第一部分为:KCTFREADYK
wolframalpha解方程:
解得:t = 1548396171915056368526513804948765619094392315806578106376668805448390390825
故第二部分为:
完整的key:KCTFREADYKXXXX1548396171915056368526513804948765619094392315806578461796159505215278288254
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-6-23 21:52
被mratlatsn编辑
,原因: