Files
CTF/HTB/challenges/reversing/Simple Encryptor/rev_simpleencryptor/decrypt.py
Simon 82b0759f1e init htb
old htb folders
2023-08-29 21:53:22 +02:00

34 lines
995 B
Python

import struct
# Open the file for reading in binary mode
with open("flag.enc", "rb") as f:
# Read the first 4 bytes, which represent the seed
seed_bytes = f.read(4)
# Unpack the seed as a 32-bit unsigned integer
seed = struct.unpack("I", seed_bytes)[0]
# Read the rest of the file contents
enc_data = f.read()
print(f"seed: {seed}, hex: {hex(seed)}")
print(f"enc_data: {enc_data}")
# Use the seed to seed the random number generator
import random
random.seed(seed)
# Allocate a buffer for the decrypted data
dec_data = bytearray(len(enc_data))
# Perform the decryption
for i in range(len(enc_data)):
# XOR with a random byte
dec_data[i] = enc_data[i] ^ random.getrandbits(8)
# Perform the inverse bit-shift operation
shift = random.randint(0,7)
dec_data[i] = ((dec_data[i] >> shift) | (dec_data[i] << (8 - shift))) % 256
print(f"flag: {dec_data}")
# Write the decrypted data to a file
# with open("flag.dec", "wb") as f:
# f.write(dec_data)