HACKTHEON SEJONG 2025 Preliminaries Write-up

2025. 4. 27. 21:49·해킹/CTF Write-Ups

Reversing/barcode

  1. 입력된 16진수를 8바이트(64비트) 단위로 읽고
  2. XOR 연산을 수행한 후
  3. 각 64비트를 비트 단위로 분해해서 0/1 배열로 변환
  4. 1은 '*'로, 0은 ' '로 출력
def convert_line_to_byte_value(line):
    byte = 0
    for i in range(8):
        if i < len(line) and line[i] == '*':
            byte |= (1 << i)
    return byte

# flag.barcode 파일 내용 읽기
with open('flag.barcode', 'r', encoding='utf-8') as f:
    lines = f.read().splitlines()

# 각 문자 패턴 추출
characters = []
for i in range(0, len(lines), 8):
    if i + 7 < len(lines):
        characters.append(lines[i:i+7])

# 각 문자를 64비트 값으로 변환
values = []
for idx, char in enumerate(characters):
    value = 0
    for j in range(7):
        byte = convert_line_to_byte_value(char[j])
        value |= byte << (j * 8)
    values.append(value)
    print(f"문자 {idx + 1} 값: 0x{value:016x}")

# 역연산 수행
input_values = [0] * len(values)
input_values[0] = values[0]

mask = 0xFFFFFFFFFFFFFFFF
for i in range(1, len(values)):
    input_values[i] = (~values[i] & mask) ^ input_values[i - 1]

print("\n역연산 결과:")
for i, v in enumerate(input_values):
    print(f"문자 {i + 1} 입력값: 0x{v:016x}")

# 최종 입력값
final_hex = ''.join(f"{v:016x}" for v in input_values)
print("\n최종 입력값:")
print(f"0x{final_hex}")
Result

문자 1 값: 0x000202027e027e00
문자 2 값: 0x007e020202020200
문자 3 값: 0x004242427e423c00
문자 4 값: 0x003c427202423c00

역연산 결과:
문자 1 입력값: 0x000202027e027e00
문자 2 입력값: 0xff83ffff83ff83ff
문자 3 입력값: 0x003e424202424000
문자 4 입력값: 0xfffdffcfffff83ff

최종 입력값:
0x000202027e027e00ff83ffff83ff83ff003e424202424000fffdffcfffff83ff

FLAG{0x000202027e027e00ff83ffff83ff83ff003e424202424000fffdffcfffff83ff}

'해킹 > CTF Write-Ups' 카테고리의 다른 글

HACKTHEON SEJONG 2025 Finals Write-up  (1) 2025.07.15
DEF CON CTF Qualifier 2025 Write-Up  (0) 2025.04.14
R3CTF/YUANHENGCTF 2024 Write-Up  (1) 2024.06.11
N0PSctf 2024 Write-Up  (0) 2024.06.03
[WolvCTF Write-up] child-re  (0) 2023.04.10
'해킹/CTF Write-Ups' 카테고리의 다른 글
  • HACKTHEON SEJONG 2025 Finals Write-up
  • DEF CON CTF Qualifier 2025 Write-Up
  • R3CTF/YUANHENGCTF 2024 Write-Up
  • N0PSctf 2024 Write-Up
Saen0zu
Saen0zu
  • Saen0zu
    LAZY SAENOZU
    Saen0zu
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 일상 (0)
      • 언어 (4)
        • C, C++ (1)
        • Python (3)
      • 해킹 (14)
        • CTF Write-Ups (7)
        • Mobile (1)
        • Pwnable (1)
        • Malware (1)
        • Wargame (4)
      • Toy (0)
  • 블로그 메뉴

    • 홈
    • INTRO
    • 태그
  • 링크

    • 네이버 블로그
  • 공지사항

  • 인기 글

  • 태그

    reversing
    1018
    다시
    Windows
    vikeCTF
    브루트포스
    ctf
    malware
    Misc
    체스판
    hex2int
    rootavd
    Android
    Frida
    n0psctf
    int_to_bytes
    python3
    apt37
    write-up
    백준
    studio
    UAC
    wolvctf
    칠하기
    UserAccountControl
    frida-server
    2024
    boj
    사용자계정컨트롤
    rokrat
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Saen0zu
HACKTHEON SEJONG 2025 Preliminaries Write-up
상단으로

티스토리툴바