Tags: 2021 reklest justctf re
Rating:
#!/usr/bin/python3
from struct import pack
from base64 import b64decode
p64 = lambda x : pack("<Q", x)
a = [0x0A884DF8AB2FBC902, 0x0E0D28ACBFB46461A, 0x6178F0BE4CD508AC, 0x603AD81291B66724, 0x0DE5CDDE19279A148, 0x70E60361F80E8EB4]
b = [0xD8BDEEE9C2938E66, 0xD598D291C97F7779, 0xD32C3E736983BF4, 0xC428F73FC8F2140, 0xA419A7AFE834F505, 0x4DAB6D008D6DF4F9]
r = b''
for x, y in zip(a, b):
r += p64(x ^ y)
print(r)
decoded = b64decode(r)
print(decoded)
# this_is_very_s3cret_file13371337.js
#!/usr/bin/python3
enc = b'{rewJey\x00bnF\x05B_EnEC\x00RZHnSD\x06nCdbEn]\x01\x01ZBnbR\x05CHL'
dec = b'JCTF{'
key = []
for a, b in zip(enc, dec):
key.append(a ^ b)
# print(bytes(key))
key = [ 0x31 ] * len(enc)
plain = []
for a, b in zip(key, enc):
plain.append(a ^ b)
print(bytes(plain))
# JCTF{TH1S_w4snt_tr1cky_bu7_rUSt_l00ks_Sc4ry}