모바일 게임 파일 뜯기·추출·수정 — 리소스 파일 분석 방법

APK/IPA 압축 해제로 기본 리소스 파일 접근 가능
Unity 게임은 AssetStudio, Unreal은 UEViewer 활용
암호화된 파일은 hex 에디터와 스크립트 분석 필요

모바일 게임의 APK(Android) 또는 IPA(iOS) 파일은 압축 아카이브 형태로 배포되며, 적절한 도구를 사용하면 내부 리소스 파일을 추출하고 구조를 분석할 수 있습니다. 게임 개발 학습이나 모딩 커뮤니티에서 활용되는 이 과정은 게임 엔진 종류와 보안 설정에 따라 난이도가 달라지며, 법적·윤리적 경계를 준수해야 합니다.

APK 및 IPA 파일 기본 구조

모바일 게임 설치 파일은 ZIP 압축 형식을 기반으로 하며, 7-Zip이나 WinRAR 같은 범용 압축 해제 도구로 열면 내부 폴더 구조를 확인할 수 있습니다. Android APK는 assets/, res/, lib/ 폴더로 구성되고, iOS IPA는 .app 번들 안에 유사한 디렉토리를 포함합니다. assets 폴더에는 게임 엔진이 사용하는 원본 이미지, 오디오, 3D 모델 파일이 들어 있으며, res에는 앱 아이콘이나 UI 리소스가 저장됩니다. 일부 게임은 추가 데이터 파일을 OBB(Android) 또는 별도 번들(iOS)로 분리 배포하므로, 전체 리소스를 확인하려면 이들도 함께 확인해야 합니다.

Unity 게임 리소스 추출 방법

Unity 엔진으로 제작된 게임은 assets/bin/Data/ 경로에 .assets, .resS, .resource 확장자를 가진 번들 파일을 저장합니다. AssetStudio는 이러한 Unity 번들을 읽어 Texture2D, Sprite, AudioClip, Mesh 등 개별 에셋을 PNG, WAV, OBJ 형식으로 변환해주는 오픈소스 도구입니다. 사용법은 AssetStudio를 실행한 뒤 File > Load folder로 추출한 APK의 assets 폴더를 선택하고, Asset List에서 원하는 파일을 우클릭해 Export로 저장하면 됩니다. 암호화되지 않은 Unity 게임은 대부분 이 방법으로 이미지와 사운드를 확보할 수 있으며, TextAsset 형태의 JSON이나 XML 설정 파일도 함께 추출됩니다.

다음 표는 Unity 리소스 파일 유형별 추출 가능 형식을 정리한 것입니다.

에셋 타입 번들 내 형식 추출 형식 용도
Texture2D .assets PNG, TGA 캐릭터 스프라이트, 배경
AudioClip .resS WAV, MP3 배경음악, 효과음
Mesh .resource OBJ, FBX 3D 모델 데이터
TextAsset .assets TXT, JSON 게임 설정, 대사 테이블
모바일 게임 리소스 파일 분석 도구 사용 화면
(참고 이미지)

Unreal Engine 게임 분석 도구

Unreal Engine 기반 게임은 .pak 파일에 리소스를 패키징하며, UEViewer(UModel)라는 전용 뷰어로 내용을 확인할 수 있습니다. .pak 파일은 APK 내부 또는 별도 다운로드 경로에 위치하고, UEViewer에서 열면 Skeletal Mesh, Static Mesh, Texture, Animation 목록이 표시됩니다. 우클릭 메뉴의 Export 기능을 통해 PNG, PSK, PSA 등 표준 포맷으로 변환 가능하며, Blender 같은 3D 툴에서 추가 편집이 가능합니다. 작성 시점 기준으로 UEViewer는 Unreal Engine 5.3까지 지원하며, 최신 엔진 버전은 커뮤니티 패치가 필요할 수 있습니다.

암호화 및 난독화 대응 방법

상업 게임 중 상당수는 리소스 파일에 AES나 커스텀 XOR 암호화를 적용하여 AssetStudio나 UEViewer로 바로 열리지 않습니다. 이 경우 HxD, 010 Editor 같은 hex 에디터로 파일 헤더를 분석하고, 게임 실행 파일(libil2cpp.so 또는 libUE4.so)을 IDA Pro나 Ghidra로 디컴파일해 복호화 루틴을 찾아야 합니다. Python이나 C#으로 복호화 스크립트를 작성한 뒤 일괄 처리하면 원본 에셋에 접근할 수 있지만, 이 과정은 리버스 엔지니어링 기술이 필요하고 법적 리스크가 따릅니다. 교육 목적이나 개인 연구 범위를 벗어나 배포하거나 상업적으로 활용하면 저작권법과 게임 서비스 약관을 위반할 수 있으므로 주의가 필요합니다.

리소스 수정 및 재패키징 절차

추출한 이미지를 GIMP나 Photoshop으로 편집한 뒤 원래 해상도와 포맷을 유지해 다시 번들로 묶으면 커스텀 스킨이나 UI 테마를 만들 수 있습니다. Unity의 경우 AssetBundle Browser 에디터 확장을 사용해 새 번들을 빌드하고, APK 내부 assets 폴더에 덮어쓴 뒤 apktool로 재컴파일합니다. 서명은 jarsigner나 apksigner를 이용해 디버그 키로 진행하며, 완성된 APK는 에뮬레이터나 루팅된 기기에서 테스트할 수 있습니다. 온라인 게임은 서버 검증으로 수정된 파일이 차단되거나 계정 정지 사유가 되므로, 오프라인 싱글 플레이 게임에서만 실험하는 것이 안전합니다.

법적·윤리적 고려사항

게임 파일 분석은 개인 학습과 모딩 커뮤니티 참여 목적으로는 허용되는 경우가 많지만, 추출한 리소스를 재배포하거나 2차 창작물에 무단 사용하면 저작권 침해에 해당합니다. 특히 캐릭터 이미지나 사운드를 YouTube, 상업 프로젝트에 활용할 때는 원작자 허락이 필수이며, 게임 약관에서 명시적으로 금지한 행위는 법적 분쟁으로 이어질 수 있습니다. 일부 인디 게임은 공식 모딩 툴과 라이선스를 제공하므로, 제작사 홈페이지나 Steam Workshop을 먼저 확인하는 것이 권장됩니다. 리버스 엔지니어링은 연구·교육 목적 예외 규정이 있지만 국가와 상황마다 다르므로, 불확실하면 법률 자문을 받는 것이 안전합니다.

자주 묻는 질문 (FAQ)

❓ APK 파일을 압축 해제했는데 이미지가 보이지 않습니다

Unity나 Unreal 게임은 에셋을 번들 파일(.assets, .pak)로 패키징하므로 AssetStudio나 UEViewer 같은 전용 도구가 필요합니다. 압축 해제만으로는 PNG 형태로 저장되지 않은 리소스를 볼 수 없습니다.

❓ AssetStudio에서 파일 목록이 비어 있습니다

게임이 암호화를 적용했거나 Unity 버전이 너무 최신일 수 있습니다. hex 에디터로 파일 시그니처를 확인하고, AssetStudio GitHub에서 최신 빌드를 다운로드하거나 커뮤니티 패치를 찾아보세요.

❓ 수정한 APK를 설치하면 오류가 발생합니다

apktool로 재컴파일할 때 --use-aapt2 옵션을 추가하고, jarsigner로 서명했는지 확인하세요. 기존 게임이 설치되어 있으면 패키지명 충돌로 설치가 거부되므로 제거 후 재시도가 필요합니다.

❓ iOS IPA 파일도 같은 방법으로 분석할 수 있나요

IPA는 ZIP으로 압축 해제 후 .app 폴더 안에서 Unity나 Unreal 번들을 찾아 동일한 도구로 열 수 있습니다. 다만 재패키징과 서명은 macOS와 Xcode가 필요하며, 탈옥하지 않은 기기에서는 설치가 제한됩니다.

❓ 추출한 리소스를 YouTube 영상에 사용해도 되나요

게임 제작사의 저작권 정책에 따라 다릅니다. 공식 가이드라인이나 FAQ에서 팬 아트·영상 제작 허용 여부를 확인하고, 상업적 수익을 얻는다면 별도 라이선스 협의가 필요할 수 있습니다.

링크가 복사되었습니다