Writeup Aria
01_General01_Encoding

Hex

Desc

Saat data dienkripsi, hasil ciphertext sering berisi byte yang tidak bisa ditampilkan sebagai karakter biasa. Agar data biner seperti itu mudah disimpan, dikirim, atau ditempel di teks, kita bisa merepresentasikannya dalam bentuk hexadecimal.

Hexadecimal adalah basis-16, memakai karakter 0-9 dan a-f. Satu byte direpresentasikan oleh dua digit hex. Misalnya karakter A punya nilai ASCII desimal 65, yang dalam hex menjadi 41.

Pada challenge ini, flag diberikan sebagai string hex panjang. Kita perlu decode hex tersebut kembali menjadi byte, lalu decode byte menjadi teks.

63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d

Di Python, fungsi bytes.fromhex() dapat digunakan untuk mengonversi hex ke byte. Metode .hex() melakukan kebalikannya, yaitu mengubah bytes menjadi representasi hex.

Resources

Solution

With Python
hex_string = "63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d"
flag = bytes.fromhex(hex_string).decode()
print(flag)

bytes.fromhex(hex_string) mengubah string hex menjadi data bertipe bytes. Setelah itu .decode() mengubah bytes tersebut menjadi string UTF-8 yang bisa dibaca sebagai flag.

With CyberChef
  1. Buka CyberChef.
  2. Masukkan string heksadesimal ke dalam input.
  3. Pilih operasi "From Hex" dari daftar operasi.

Summary

Hex adalah representasi teks untuk data byte. Di Python, bytes.fromhex() dipakai untuk decode hex ke bytes, lalu .decode() dipakai untuk mengubah bytes menjadi string.

Flag

crypto{You_will_be_working_with_hex_strings_a_lot}

On this page