yozm.tech
피드로 돌아가기
news.hada.ioHOTAI 재작성

ImHex로 미지의 파일 형식 리버스 엔지니어링하기

게임 FEZ의 독자적인 바이너리 세이브 파일을 ImHex로 분석하는 과정이 공개되었습니다. 매직 바이트나 명세가 없는 파일의 경우, 코드를 역컴파일하여 데이터 직렬화 순서와 자료형을 파악하고, 이를 ImHex 패턴 언어로 옮겨 파일 구조를 시각화하고 검증하는 방법을 상세히 설명합니다. 이는 미지의 파일 형식을 이해하고 수정하는 데 유용한 접근 방식입니다.

6시간 전·2026.09.04·읽기 1·xguru https://news.hada.io/user/xguru

미지의 바이너리 파일 형식을 분석하는 것은 종종 복잡하고 어려운 작업으로 여겨집니다. 특히 파일에 형식을 식별할 수 있는 '매직 바이트(magic byte)'나 공식 명세가 없는 경우 더욱 그렇습니다. 최근 공개된 글에서는 게임 FEZ의 독자적인 세이브 파일을 예시로, C# 코드 역컴파일부터 ImHex 패턴 작성을 통해 파일 형식을 리버스 엔지니어링(reverse engineering)하는 전 과정을 상세히 보여주며 이러한 난제를 해결하는 실용적인 방법을 제시했습니다.

분석 대상은 2012년에 출시된 게임 FEZ의 사용자 정의 바이너리 세이브 파일입니다. 이 파일은 압축되거나 암호화되지 않았지만, 시작 부분에 매직 문자열이 없어 ImHex 같은 도구로도 자동 판별이 어려웠습니다. 저자는 먼저 JetBrains Rider를 사용해 게임의 C# 바이너리를 역컴파일하여 파일을 읽고 쓰는 코드를 찾아냈습니다. 특히 `PCSaveDevice.Save()` 함수에서 파일이 `DateTime.Now.ToFileTime()`으로 현재 시각을 기록하고, `saveAction(writer)` 콜백으로 실제 게임 데이터를 기록하는 순서를 확인했습니다. 이 정보를 바탕으로 ImHex의 패턴 에디터에서 `FezSaveFile` 구조체를 정의하고, Windows `FILETIME` 같은 필드를 하나씩 매핑했습니다. `SaveFileOperations.Write()` 함수를 통해 세이브 데이터 필드가 바이너리에 기록되는 정확한 순서와 C# 자료형을 파악하여, 이를 `long`, `bool`, `string` 등 ImHex 패턴 언어 형식으로 옮겼습니다. 특히 선택적 객체, 길이 접두 문자열, 열거형 등 바이너리 형식에서 자주 나타나는 구조들을 패턴으로 표현하고 검증하는 방법을 구체적으로 설명했습니다.

이러한 리버스 엔지니어링 과정은 단순히 파일 내용을 들여다보는 것을 넘어, 파일의 내부 구조를 실행 가능한 문서이자 파일 검증기로 만들어준다는 점에서 큰 의미를 가집니다. 완성된 ImHex 패턴은 파일의 모든 바이트(패딩 제외)를 구조화하여 탐색하고 수정할 수 있게 하며, 호환되지 않는 파일을 패턴 단계에서 거부하는 등 강력한 검증 기능도 제공합니다. 이는 게임 모딩, 데이터 복구, 보안 분석 등 다양한 분야에서 미지의 바이너리 데이터를 다룰 때 매우 유용하게 활용될 수 있습니다. 또한, 이러한 분석 절차는 .NET, 네이티브 프로그램, JVM 언어 등 다양한 환경의 바이너리 파일에도 적용될 수 있어, 개발자와 연구자들에게 새로운 통찰과 도구를 제공합니다.

1인 창업자를 위한 기회 분석
AI 분석 · 참고용이며 검증이 필요합니다
4/10
보통
4점인가

기존 도구(ImHex)와 잘 알려진 기법(리버스 엔지니어링)을 활용한 사례로, 새로운 시장 기회보다는 전문성 강화에 가깝습니다.

문제 / 미충족 수요

미지의 바이너리 파일 형식을 분석하고 구조화하는 것은 여전히 전문 지식과 시간이 많이 소요되는 작업입니다.

한국 시장
국내 있음한국에서도 게임 모딩 커뮤니티나 임베디드 개발 분야에서 유사한 분석 수요가 존재하지만, ImHex 자체는 이미 잘 알려진 도구입니다.
수익 모델

B2B 컨설팅, 전문 도구 판매, 교육 콘텐츠 · 돈 내는 주체: 게임 개발사(모딩 방지/지원), 임베디드 시스템 개발사, 보안 연구원, 데이터 복구 전문가

1인 실현 가능성
2/5

ImHex 같은 전문 도구 사용법 숙달 및 역컴파일 등 전문 지식이 필요하며, 1인 개발로 범용적인 솔루션을 만들기 어렵습니다.

진입 지점 (Wedge)

특정 산업(예: 게임 모딩, 임베디드 시스템)의 니치한 바이너리 파일 형식 분석 자동화 도구 개발

이번 주 첫 실험

특정 게임의 세이브 파일이나 임베디드 기기의 펌웨어 파일 등, 잘 알려지지 않은 바이너리 파일 하나를 선정하여 ImHex로 분석하는 과정을 블로그에 공유하며 잠재 고객의 반응을 살핀다.

Original source
이 글은 news.hada.io의 기사를 yozm.tech가 한국어로 재작성한 버전입니다.
원문 보기