Blue Archive Steam용 로컬 프라이빗 서버와 트래픽 후킹 도
Blue Archive Steam 버전용 C# 프라이빗 서버 구현이다. mitmproxy로 트래픽을 훅하고 SQLite에 상태를 저장하는 아키텍처이다. autorun.ps1이 서버와 mitmweb를 자동으로 기동한다.
TL;DR
Shittim-Server는 Blue Archive Steam 버전용 C# 프라이빗 서버로 ASP.NET Core(.NET 10) 기반으로 구현되어 있다. autorun.ps1이 .NET SDK와 mitmweb를 확인한 뒤 http://localhost:5000에 서버를 띄우고 mitmweb의 redirect addon으로 BlueArchive.exe 트래픽을 후킹하며 SQLite에 상태를 저장하고 HAR 로그를 생성하는 방식으로 동작한다. 요구사항은 .NET 10 SDK, Blue Archive(스팀), Python 3.8+와 mitmproxy이며 스타 439, 포크 26의 메타데이터가 존재한다. 연구·교육과 프로토콜 분석 목적의 로컬 테스트에는 적합하나 공개 서버 운영이나 상업적 사용에는 제약이 있음을 README가 명기했다.
주요 기능
- 인증과 계정 관리를 Nexon / IAS / IMS 로그인 플로우로 재현한다. 이 구현은 클라이언트의 로그인 요청을 받아 내부적으로 세션을 발행하고 인증 토큰을 반환하는 방식으로 동작한다. 패킷 수준에서 인증 핸들링을 처리하여 Steam 클라이언트가 서버에 정상 로그인하도록 만들었다.
- MX 게임 프로토콜의 패킷 암호화/복호화를 포함한 코어 게임 프로토콜을 구현했다. 서버는 수신 패킷을 복호화하여 내부 로직으로 처리하고 응답을 암호화해 클라이언트로 송신하는 입력→처리→출력 파이프라인을 갖추었다. 이로 인해 게임 플레이 흐름을 로컬 환경에서 재현할 수 있음이 확인됐다.
- mitmproxy 기반 트래픽 훅과 HAR 로깅을 지원한다. mitmweb와 redirect addon을 활용해 BlueArchive.exe 연결을 Shittim Server로 리디렉션하며 트래픽을 HAR 형식으로 기록해 분석할 수 있다. HAR은 트래픽 분석과 디버깅용 증거 자료로 바로 활용 가능하다.
어떻게 동작하는가
autorun.ps1이 먼저 .NET 10 SDK와 mitmweb 설치 여부를 검사하고 ASP.NET Core 서버를 http://localhost:5000으로 기동한다. 동시에 mitmweb를 redirect addon과 함께 시작해 BlueArchive.exe에서 발생하는 트래픽을 로컬 서버로 리디렉션하며 mitmproxy의 머신 루트에 설치된 CA로 TLS 세션을 중간에서 종결하고 재암호화하는 방식으로 패킷을 중계한다. 서버 쪽에서는 SQLite에 계정 및 세션 데이터를 저장하고 MX 프로토콜의 암호화된 패킷을 복호화→처리→암호화해 클라이언트에 응답하는 흐름으로 작동함이 확인됐다.
해결 문제
Steam 용 Blue Archive가 기본적으로 Nexon 서버에 의존하는 구조에서 로컬 환경으로 게임 서버를 대체할 필요를 해소한다. 이 레포는 인증 플로우(Nexon / IAS / IMS)와 MX 게임 프로토콜을 재현하여 클라이언트가 로컬 서버와 통신하도록 만들어 실제 서버 없이 로그인과 일부 게임 흐름을 수행할 수 있게 했다. 또한 mitmproxy 기반 HAR 로깅으로 게임 트래픽을 캡처해 프로토콜 분석과 디버깅을 가능하게 했음이 확인됐다.
지금 주목받는 이유
저장소는 스타 439, 포크 26의 메타데이터를 가지고 있어 적지 않은 관심을 받은 것으로 나타났다. Steam 전용 게임에서 직접 실행 파일을 후킹해 프라이빗 서버를 만들 수 있다는 점이 유효한 니즈를 가진 사용자들 사이에서 주목받은 이유로 보인다. 또한 mitmproxy를 통한 트래픽 캡처와 HAR 로그 기능이 연구·디버깅 목적의 사용자를 끌어모은 것으로 나타났다.
차별점
- Steam 전용으로 BlueArchive.exe를 직접 후킹하는 워크플로를 제공한다. autorun.ps1이 시스템 프록시에 의존하지 않고 mitmproxy redirect addon으로 프로세스를 직접 연결하는 방식으로 작동하기 때문에 환경 복잡도를 낮추는 설계이다. 이 접근은 Steam 버전에서 필요한 머신 루트 인증서 설치 절차와 결합되어 게임이 로컬 서버로 자연스럽게 접속하도록 설계되었다.
- MX 프로토콜의 패킷 암호화/복호화와 Nexon / IAS / IMS 로그인 플로우를 구현하고 있다는 점이 차별점이다. 단순 리버스 프록시가 아니라 게임의 인증과 핵심 통신 규격을 재현해 클라이언트 동작을 유지한 상태로 테스트 가능한 상태를 제공한다. 또한 SQLite 기반의 가벼운 영속성과 HAR 로그를 통한 트래픽 보관 기능을 함께 제공한다.
사용 사례
- 프로토콜 연구와 교육 목적의 실습 환경으로 사용 가능하다. mitmproxy로 트래픽을 기록하고 MX 프로토콜을 복호화해 메시지 구조와 인증 흐름을 분석하는 입력→분석→증거 산출 루틴을 구성할 수 있다. README가 교육·연구 용도를 명시하고 있어 법적·윤리적 고려를 전제로 실험 환경으로 적합함이 확인됐다.
- 로컬 테스트용 프라이빗 서버로 게임의 로그인 및 일부 네트워크 기능을 재현하는 용도로 사용 가능하다. 서버는 SQLite를 데이터 저장소로 사용하고 autorun.ps1로 서버와 프록시를 자동 기동하므로 빠른 반복 테스트 사이클을 만들 수 있다. HAR 로그를 통해 클라이언트-서버 상호작용을 기록하고 재현 케이스를 확보할 수 있다.
- 트래픽 캡처와 디버깅을 통한 문제 재현 케이스 수집에 활용할 수 있다. mitmweb UI에서 실시간 트래픽을 관찰하고 HAR 파일로 내보내며 문제 있는 패킷을 식별해 재현하는 과정이 가능하다. 이 흐름은 게임 클라이언트의 오류 재현과 네트워크 이슈 분석에 유용함이 확인됐다.
시작하기
먼저 mitmproxy를 설치하고 mitmweb를 실행하여 기본 프록시가 127.0.0.1:8080에 바인딩되는 상태로 만든다. 그다음 브라우저로 http://mitm.it에 접속해 Windows용 루트 인증서를 내려받아 머신 루트 스토어의 Trusted Root Certification Authorities에 설치해야 한다. 마지막으로 저장소 루트에서 .\autorun.ps1을 실행해 ASP.NET Core 서버와 mitmweb redirect 환경을 기동한 뒤 Steam에서 Blue Archive를 실행하면 로컬 서버에 연결되는 흐름이다.
요구사항
- .NET 10 SDK가 설치되어 있어야 한다.
- Blue Archive (Steam version)가 설치되어 있어야 한다.
- Python 3.8+와 mitmproxy(가급적 mitmweb 포함)가 PATH에 있어야 한다.
439
Stars
26
Forks
+205
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.