pico CTF

[pico CTF] Transformation

skyepodium 2023. 4. 2. 16:48

1. 개요

16bit, 8bit 이해 문제

 

2. 분석

코드를 보면, 앞글자를 8 bit 뒤록 밀고, 뒷글자를 붙여서 16bit 문자열을 생성합니다.

''.join([chr((ord(flag[i]) << 8) + ord(flag[i + 1])) for i in range(0, len(flag), 2)])
# 灩捯䍔䙻ㄶ形楴獟楮獴㌴摟潦弸強㕤㐸㤸扽

 

결과물을 하나씩 순회하면서 앞글자는 8비트 앞으로 당기고, 뒷글자는 0xff(255)와 &연산으로 알아냅니다.

res = "灩捯䍔䙻ㄶ形楴獟楮獴㌴摟潦弸強㕤㐸㤸扽"
flag = ''

for i in range(0, len(res)):
    num = ord(res[i])
    flag += chr(num >> 8) + chr(num & 0xff)

print(flag)
# picoCTF{16_bits_inst34d_of_8_75d4898b}