不嘻嘻,签到题做了两天,先用pyinstxtractor.py(找最新版本。。红温)把exe转化为pyc,用在线反编译pycdc来反编译,最后的key在一个文件夹里key.pyc切记用python3.3版本(红温)。
# 假设已经有了正确的密钥key_bytes key_bytes = b'V3rY_v3Ry_Ez' # 这里需要填入正确的密钥# 游戏初始化和解密函数(根据提供的代码片段) def initialize(key):key_length = len(key)S = list(range(256))j = 0for i in range(256):j = (j + S[i] + key[i % key_length]) % 256S[i], S[j] = S[j], S[i]return Sdef generate_key_stream(S, length):i = j = 0key_stream = []for _ in range(length):i = (i + 1) % 256j = (j + S[i]) % 256S[i], S[j] = S[j], S[i]key_stream.append(S[(S[i] + S[j]) % 256])return key_streamdef decrypt(data, key):S = initialize(key)key_stream = generate_key_stream(S, len(data))decrypted_data = bytes([i ^ data[i] ^ key_stream[i] for i in range(len(data))])return decrypted_data# 要解密的数据 data = (101, 97, 39, 125, 218, 172, 205, 3, 235, 195, 72, 125, 89, 130, 103, 213, 120, 227, 193, 67, 174, 71, 162, 248, 244, 12, 238, 92, 160, 203, 185, 155)# 使用密钥解密数据 decrypted_data = decrypt(bytes(data), key_bytes)# 打印解密后的数据 print('Decrypted flag:', decrypted_data.decode())