Sembunyi V2

Tahniah, perwira! Anda telah berjaya menyelesaikan cabaran pertama dan membuat Sultan Pahang berbangga. Namun, cabaran sebenar belum berakhir. Kini, anda dihadapkan dengan ujian yang lebih sukar. Ini adalah peluang untuk membuktikan kebolehan anda dalam menghadapi cabaran yang lebih mencabar!

ini pesanan dari sultan:

“Selamat datang ke cabaran seterusnya, perwira. Saya percaya anda mempunyai kemahiran untuk mengatasi segala halangan. Teruskan usaha anda, dan tunjukkan kehebatan dalam menyelesaikan cabaran ini.”

  • Category: Misc
  • Challenge File: bendera.txt

Solution

Step 1: Check for strings
$ strings bendera.txt
Step 2: View the hex dump of the file
$ xxd bendera.txt
Step 3: Utilize Python script to convert “.” to 1 and spaces to 0
def decode_ctf_challenge_from_file(file_path):
    with open(file_path, 'rb') as file:
        hex_data = file.read().hex()  # Read file content and convert to hex
    
    binary_string = ''
    ascii_output = ''
    
    # Iterate over the hex data in 2-character chunks
    for i in range(0, len(hex_data), 2):
        hex_val = hex_data[i:i+2]
        
        if hex_val == '20':  # Space
            binary_string += '0'
        elif hex_val == '09':  # Tab
            binary_string += '1'
        elif hex_val == '0a':  # Newline
            # Convert the current binary string to ASCII and reset it
            if binary_string:
                ascii_output += chr(int(binary_string, 2))
                binary_string = ''
    
    # Convert any remaining binary string
    if binary_string:
        ascii_output += chr(int(binary_string, 2))
    
    return ascii_output

# Usage
file_path = 'bendera.txt'  # Replace with the actual file path
decoded_message = decode_ctf_challenge_from_file(file_path)
print(decoded_message)
Step 4: After binary conversion from the script
$ python3 script.py
3108{putih_dan_hitam_dalam_negeri_pahang}

Flag: 3108{putih_dan_hitam_dalam_negeri_pahang}