KCTF2022-第二题-末日邀请 KCTF2022-第二题-末日邀请字符串转换: 12345678910111213141516int __fastcall str2int(int src, int len){ int i; // esi char v4; // dl char v5; // al for ( i = 0; i < len; ++i ) { v4 = *(_BYTE *)(i + src); v5 = '0'; if ( v4 >= ':' ) v5 = 0x37; *(_BYTE *)(i + src) = v4 - v5; } return 0;} 暴力破解: 1234567891011121314151617181920def check(l): v37 = 0 for i in range(9): v23 = l[i] + 10*v37 v24 = v23 - 0x37373737 if v23 <= 0x4B435445: v24 = v23 v37 = v24 if v24 %(i+1) == 0: continue else: return False return Truefor i in itertools.permutations([1,2,3,4,5,6,7,8,9], 9): l = [] for c in i: l.append(c) if check(l): print(l) 1[3, 8, 1, 6, 5, 4, 7, 2, 9] 目前还有前key的前3位未知,需要满足条件: 可以通过暴力尝试得到前三位为421。 最终key: 421KCTF381654729。 test KCTF2022-第四题-飞蛾扑火 上一篇 KCTF2022-签到题-险象环生 下一篇