-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfixme1.py
27 lines (20 loc) · 1.24 KB
/
fixme1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import random
def str_xor(secret, key):
#extended key to match Lenght efficiently
new_key = list(key)
i = 0
while len(new_key) < len(secret):
# new_key = new_key + key[i]
new_key.append(key[i])
i = (i + 1) % len(key)
# return "".join([chr(ord(secret_c) ^ ord(new_key_c)) for (secret_c,new_key_c) in zip(secret,new_key)])
return "".join(chr(ord(a) ^ ord(b)) for a,b in zip(secret,new_key))
# flag_enc = chr(0x15) + chr(0x07) + chr(0x08) + chr(0x06) + chr(0x27) + chr(0x21) + chr(0x23) + chr(0x15) + chr(0x5a) + chr(0x07) + chr(0x00) + chr(0x46) + chr(0x0b) + chr(0x1a) + chr(0x5a) + chr(0x1d) + chr(0x1d) + chr(0x2a) + chr(0x06) + chr(0x1c) + chr(0x5a) + chr(0x5c) + chr(0x55) + chr(0x40) + chr(0x3a) + chr(0x5f) + chr(0x53) + chr(0x5b) + chr(0x57) + chr(0x41) + chr(0x57) + chr(0x08) + chr(0x5c) + chr(0x14)
flag_enc = "".join(chr(x) for x in [
0x15, 0x07, 0x08, 0x06, 0x27, 0x21, 0x23, 0x15, 0x5a, 0x07, 0x00, 0x46,
0x0b, 0x1a, 0x5a, 0x1d, 0x1d, 0x2a, 0x06, 0x1c, 0x5a, 0x5c, 0x55, 0x40,
0x3a, 0x5f, 0x53, 0x5b, 0x57, 0x41, 0x57, 0x08, 0x5c, 0x14
])
flag = str_xor(flag_enc, 'enkidu')
# print('That is correct! Here\'s your flag: ' + flag)
print("That is correct! Here's your flag:", flag)