0%

wp

2025-02-03 15:11By
Zcx666
RC4算法分析REVERSE

Problem: [FSCTF 2023]EZRC4

思路

  • 解题大致思路

EXP

def rc4_crypt(data, key):
    S = list(range(256))
    j = 0
    out = []

    # Key-scheduling algorithm (KSA)
    for i in range(256):
        j = (j + S[i] + ord(key[i % len(key)])) % 256
        S[i], S[j] = S[j], S[i]

    # Pseudo-random generation algorithm (PRGA)
    i = j = 0
    for char in data:
        i = (i + 1) % 256
        j = (j + S[i]) % 256
        S[i], S[j] = S[j], S[i]
        out.append(char ^ S[(S[i] + S[j]) % 256])

    return bytes(out)

# 已知数据和密钥
data = [
    -21, 13, 97, 41, -65, -101, 5, 34, -13, 50, 40, -105, -29, -122, 77, 
    45, 90, 42, -93, 85, -86, -43, -76, 108, -117, 81, -79
]
key = "wanyuanshenwande"

# 将数据转换为字节格式
data_bytes = bytes([b & 0xFF for b in data])

# 解密数据
decrypted_data = rc4_crypt(data_bytes, key)

# 输出解密后的数据
print("Decrypted Data:", decrypted_data.decode('utf-8', errors='replace'))

总结

  • 对该题的考点总结

秒了
flag{I_L0VE_gensh1n_Imp4ct}

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论