I learnt Python in school but I have no clue what this is!
The contents of
C2cipher appear to be Python disassembly. Manually converting this to Python code, we would have something like:
def C1cipher(text): ret_text = '' for i in list(text): counter = text.count(i) ret_text += chr(2*ord(i) - len(text)) return ret_text def C2cipher(inpString): xorKey = 'S' length = len(inpString) for i in range(length): inpString = inpString[:i] + chr(ord(inpString[i]) ^ ord(xorKey)) + inpString[i+1:] return inpString
The first cipher replaces each character
i in the input text with
chr(2*ord(i) - len(text)), while the second cipher XORs every character in the input text with
'S'. To reverse the first cipher, I wrote the following function:
def C1rev(text): ret = '' for i in text: ret += chr((ord(i)+len(text))//2) return ret
To reverse the second cipher,
xor(inpString, 'S') is sufficient (
xor function from the
pwn library is used). However, only
C1rev was enough to get the flag; seems like
C2cipher wasn’t used at all.