picoCTF Writeups - Reverse Engineering

2022/01/10

picoCTFの過去問を解くためのサービスであるpycoGymにある問題のWriteupsを記録する
ここではReverse Engineeringにカテゴライズされる問題を扱う

Transformation

Python code ''.join([chr((ord(flag[i]) << 8) + ord(flag[i + 1])) for i in range(0, len(flag), 2)]) で変換された暗号文が与えられる
コードを読むと1バイト文字2つを結合して2バイト文字にしていることが分かるため、その逆変換を行いフラグを得る

逆変換用コード
暗号文を普通の文字列ではなく u'hoge' とする点に注意

# -*- coding: utf-8 -*-
flag = ''
for c in list(u'灩捯䍔䙻ㄶ形楴獟楮獴㌴摟潦弸彥㜰㍢㐸㙽'):
    flag += chr((ord(c) >> 8) & 255)
    flag += chr(ord(c) & 255)
print(flag)