simple checkin
problem
(see checkin binary file)
solution
I opened up the checkin file in my assembly reader tool, Binary Ninja.
Here, I saw that there were two large sections of information being written.
My first thought was to XOR the two chunks of data, and so to get the data by itself, I used my tool text-format-wizard to cleanse the data. I then used a short python script to XOR each chunk with the other and get the flag.
data = """0x0b
0x68
0x7d
... (etc) ...
0xb0
0x99
0x5f
0x7e
0x22
0x5f""".splitlines()
total = ""
for _ in range(int(len(data)/2)):
first = data[_*2]
second = data[_*2+1]
if len(first) == 2:
first = f"0x{first}"
total += chr(int(first[2:], 16) ^ int(second[2:], 16))
print(total)
The flag here is very long, it is cvctf{i_apologize_for_such_a_long_string_in_this_checkin_challenge,but_it_might_be_a_good_time_to_learn_about_automating_this_process?You_might_need_to_do_it_because_here_is_a_painful_hex:32a16b3a7eef8de1263812.Enjoy(or_not)!}
.