-
-
[原创] 看雪 2022 KCTF 秋季赛 第六题 病疫先兆
-
发表于: 2022-11-28 12:44 6303
-
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 CDLL rands = [ [ 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) break if __name__ = = '__main__' : for i in range ( 100000 ): check(i) |
答案 14725KCTF83690
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: