-
-
[原创] 看雪 2022 KCTF 秋季赛 第六题 病疫先兆
-
发表于: 2022-11-28 12:44 6609
-
IDA 看一眼 main

输入长 14,把前 5 和后 5 都 atoi,然后分别作为随机种子,生成 20 个随机数和定值比较。然后中间的剩下 4 字节是 KCTF
于是写一个 python 脚本爆破,本来想写多进程的,仔细想想种子空间不是 2^32,只有五位数,直接循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | from ctypes import CDLLrands = [ [15356, 8563, 9659, 14347, 11283, 30142, 29542, 18083, 5057, 5531, 23391, 21327, 20023, 14852, 4865, 23820, 16725, 18665, 25042, 24920], [11190, 27482, 980, 5419, 28164, 9548, 16558, 22218, 6113, 21959, 13889, 11580, 2625, 19397, 25139, 8167, 28165, 3950, 25496, 27351],]def check(seed): lib = CDLL('msvcrt.dll') lib.srand(seed) r0 = lib.rand() for rand in rands: if r0 == rand[0]: if all(lib.rand() == r for r in rand[1:]): print(seed) print(rand) breakif __name__ == '__main__': for i in range(100000): check(i) |
答案 14725KCTF83690
[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
赞赏
雪币:
留言: