glacier ctf 25
This commit is contained in:
30
2025/glacier/rev/c2/dec
Executable file
30
2025/glacier/rev/c2/dec
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
|
||||
KEY = (
|
||||
b"\x2B\x5F\x52\x17\x05\x56\x41\x37\x38\x75\x01\x44\x5E\x06\x6C\x27\x09"
|
||||
b"\x50\x41\x11\x18\x78\x56\x0D\x33\x0B\x07\x4C\x58\x0B\x07\x4C\x5F\x0B"
|
||||
b"\x0A\x40\x59\x0B\x00\x40\x55\x0B\x06"
|
||||
)
|
||||
|
||||
def decrypt(hex_string):
|
||||
# Convert hex dump to bytes
|
||||
encrypted_bytes = bytes.fromhex(hex_string.replace(" ", "").replace("\n", ""))
|
||||
|
||||
decrypted = []
|
||||
key_len = len(KEY)
|
||||
|
||||
# Rolling XOR Logic (matches Rust sub_D7B0)
|
||||
for i, byte in enumerate(encrypted_bytes):
|
||||
k = KEY[i % key_len]
|
||||
decrypted.append(byte ^ k)
|
||||
|
||||
result_bytes = bytes(decrypted)
|
||||
|
||||
print(result_bytes.decode('utf-8'))
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print("pass decrypt text as hexstring")
|
||||
|
||||
decrypt(sys.argv[1])
|
||||
Reference in New Issue
Block a user