[ 앱뜯 관련 글 모음 ]
※ [흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2 ☜
※
[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기(구버전)※ [흥미] 말딸 앱 뜯어보기 중급편 : master.mdb 뜯어보기
※ [흥미] 말딸 앱 뜯어보기 초급편2 : 사운드 뜯어보기
※ [흥미] 한섭 말딸 클라이언트의 이미지를 뜯어보자!
정말정말 오랜만에 찾아뵙는 말딸 앱뜯 관련 글입니다!
이번 글에서 다룰 내용은 이미지 파일을 추출하는 방법으로,
사실 제가 썼던 최초의 앱뜯 관련 글에서 이미 한 번 다룬 적 있었던 내용입니다 ㅎ
그런데 같은 주제의 글을 왜 또 쓰고 있냐고 하면,
일섭의 최근 업데이트(25년 9월 24일)로 인해 앱뜯 방법에서 많은 부분이 변경되었기 때문에...
기존 앱뜯 방법만으로는 이제 에셋 추출이 불가능한 상황이 되었기에,
바뀐 데이터 구조에 맞춰 앱뜯 방법을 최신화하여 다시 정리해 봤습니다 ㅇㅇ;;;
(이거 알아내려고 2주 동안 GitHub이랑 일본 커뮤니티 뒤져가며 온갖 삽질을 한 건 비밀)
[ 시작하기 전에 : 대체 무엇이 바뀌었는가? ]
이번 일섭 업데이트에선 특별한 추가 컨텐츠가 없음에도 10~16GB나 되는 대규모 패치가 이뤄졌는데,
이게 컨텐츠는 그대로 유지하면서 내부 데이터 구조를 한 번 갈아엎는 패치였기 때문입니다.
예전에 푸리오소 출시(25년 1월 20일) 당시에도 비슷하게 데이터를 대규모로 갈아엎은 적이 있었지만,
그때는 데이터 압축 방식이 개선된 것뿐이라 (아마도 Unity 엔진 자체의 변경점이 적용됐던 걸로 추정)
단순히 에셋 추출 툴(Asset Studio)을 최신 버전으로 업데이트하는 것만으로 해결됐는데...
이번 업데이트에선 데이터에 암호화(!)를 적용하는 바람에
이걸 해제(복호화)하질 못하면 기존 툴로는 에셋을 추출할 수 없는 상황이 되어버렸습니다 -_-;;;
글섭 오픈 뒤로 적극적인 양덕들 덕분에 단순 앱뜯은 물론 온갖 모드들이 미쳐 날뛰는 상황이라
부득이하게 암호화를 도입하게 된 것 아니냐...라는 소문이 있긴 하지만 뭐 진실은 알 길이 없구요...
여하튼 이제 앱뜯 과정 중간에 '데이터 복호화'라는 중간과정이 하나 더 늘었습니다 ㅇㅇ
그리고 이게 이번 업데이트부터 적용된 건지 아니면 그전부터 적용됐는데 모르고 있었던 건지는 모르겠지만,
DMM판 클라이언트의 경우엔 신규 설치(또는 재설치)하면 실제 데이터도 게임 설치 경로에 다운로드 받도록 변경됐습니다 ㄷㄷ
예전에는 게임 설치 경로를 어디로 지정하든 실제 데이터는 C드라이브에 강제 다운로드받았는데,
이젠 실제 데이터를 게임 설치 경로에 받도록 바뀌었기에 에셋 추출 시 찾아봐야 할 폴더도 달라졌네요.
[ 0단계 : 준비물 ]
기존 방식에선 DMM판 말딸과 Asset Studio만 있으면 됐는데,
위에서 언급했듯 복호화라는 중간 과정이 생기면서 그걸 위한 새로운 툴인 Uma Decryptor가 추가로 필요해졌습니다.
◆ PC판 우마무스메 클라이언트
일단 앱뜯 글에서 다루는 모든 말딸 클라이언트는 PC판을 기준으로 합니다!
일본 서버의 경우엔 DMM판 클라이언트를, 한국 서버의 경우엔 공식 PC판을 사용하시면 되겠습니다.
(스팀판 클라이언트의 경우엔 제가 설치를 안 해봐서 같은 방법을 쓸 수 있을지 어떨지 모르겠네요)
◆ Asset Studio GUI
Unity 엔진 기반의 게임에서 에셋을 추출해주는 툴입니다.
에셋 추출을 해주는 툴이 여러 가지가 있어서 이것저것 다 써봤는데,
그중에서 Asset Studio 쪽이 GUI 형태인데다 여러 에셋을 동시에 열람/추출하기가 제일 쉬워서 좋더군요 ㅇㅇ
아래 GitHub 링크 들어가셔서 다운받으시면 별도의 설치 없이 사용할 수 있으며,
제 경우에는 닷넷 8.0 버전을 사용 중입니다. (닷넷 프레임워크도 그에 맞춰 8.0을 설치했음)
☞ Releases・RazTools/Studio・GitHub (v.1.36.00)
Asset Studio의 가장 큰 단점은 바로 업데이트가 2024년 1월 이후로 멈춰있다는 것인데,
대신 그 명맥(?)을 이어가고 있는 거의 동일한 프로그램인 Anime Studio가 있으니 참고하시면 되겠습니다.
이쪽은 스타레일, 젠존제 등의 중국 게임들을 타깃으로 한 툴이라는 차이점이 있긴 합니다만,
어쨌든 Asset Studio를 기반으로 하는 사실상 같은 프로그램이고, 뭣보다 지금도 꾸준히 유지/보수가 이뤄지고 있는 게 장점이죠.
☞ Releases・Escartem/AnimeStudio・GitHub
◆ Uma Decryptor
암호화된 우마무스메 데이터 파일의 암호를 해제해주는 복호화 툴입니다.
프로그램 이름에서 알 수 있듯이 우마무스메 데이터 복호화에만 특화하여 개발된 툴로,
(근데 프로그램 아이콘은 옆동네 게임의 처자.... 아이마스 등장인물인 건 알겠는데 이름은 모르겠네요)
이걸로 데이터 복호화를 해줘야 위의 Asset Studio로 에셋을 읽을 수 있습니다.
☞ Releases・RanKaeder/UmaDecryptor・GitHub
아쉽게도 GUI를 제공하지 않기 때문에 윈도우 명령 프롬프트(cmd)를 띄워서 실행해야 한다는 단점이 있습니다만,
어쩌겠습니까 이게 없으면 앱뜯을 아예 못하니 귀찮지만 CLI 형태라도 써야죠 쩝 ㅋㅋ....
[ 1-1단계 : 게임 데이터가 설치된 폴더 찾기 ]
일단 앱뜯의 제일 첫 과정은 에셋을 추출할 게임 데이터가 어디 있는지 찾는 것입니다 ㅇㅇ
PC판 클라이언트를 설치하면 처음엔 게임 실행에 필요한 기본 데이터(몇 백 MB짜리)만 깔고
나중에 타이틀 화면에서 실제 게임에서 사용하는 데이터(몇 십 GB짜리)를 따로 다운받는 구조인데,
우리는 GB 단위의 실제 게임 데이터가 다운로드 된 폴더를 찾아야 합니다.
결론만 간단하게 정리하자면, 게임 데이터가 다운로드 된 경로는 아래와 같습니다.
- 일섭 DMM판 (신규 설치 시) : (지정한 설치 경로)\Umamusume\umamusume_Data\Persistent\dat
- 일섭 DMM판 (기존) : C:\Users\(사용자 계정명)\AppData\LocalLow\Cygames\umamusume\dat
- 한섭 공식 PC판 : (지정한 설치 경로)\kakaogames\umamusume\client\Assets\dat
각 케이스별 경로를 찾아 들어가서 dat 폴더를 열어보면 위 스샷처럼 1024개의 폴더에
수 십 GB의 게임 데이터가 나뉘어 저장되어 있는 모습을 보실 수 있습니다!
제 앱뜯 글을 여러 번 보신 분들이라면 대충 알고 계시겠지만,
원래 DMM판 말딸은 유저가 지정한 설치 경로와 실제 게임 데이터를 다운로드 받는 경로가 서로 달랐습니다 -_-
설치 경로를 어디로 지정하든 데이터 다운로드는 위에 적어놓은 것처럼 무조건 C드라이브의 고정된 경로에 받았거든요...
(그래서 데이터 다운로드 경로를 강제로 변경하는 방법이 따로 있었을 정도 ;;;)
그러다가 언제부터인지는 모르겠지만 DMM판 말딸도 이제 신규 설치(또는 재설치)를 할 경우엔
한섭 PC판처럼 유저가 지정한 설치 경로에 데이터 다운로드를 하도록 바뀌었습니다!
그래서 데이터가 다운로드 된 경로를 보다 쉽게 찾을 수 있게 되었죠 ㅇㅇ
그런데 이미 DMM판 말딸이 설치되어 있었던 경우에는 여전히 기존의 방식(C드라이브 고정 경로에 강제 다운로드)을 씁니다 ㅇㅇ...
바뀐 방식을 적용하려면 수 십 GB의 게임 데이터를 이동시켜야 하니 강제로 소급적용하지는 않는 것으로 보이는데,
그런 분들의 경우엔 기존에 참조하시던 경로를 계속 참조하시거나 저처럼 재설치를 하시면 되겠습니다.
[ 1-2단계 : 에셋을 추출할 파일 솎아내기 ]
이제 말딸도 4.5주년에 접어들면서 모든 데이터를 다운로드 할 경우엔 용량이 40GB를 넘어가는 미친 게임이 되었습니다 ㅇㅁㅇ;;;
(기본 데이터만 받아도 30GB는 훌쩍 넘겼던가요 아마...)
그런데 Asset Studio는 그만큼 대용량의 파일을 동시에 처리할 수가 없기 때문에,
(체감상 많아도 3~4GB 정도가 한계고, 그 이상의 용량을 한꺼번에 로드하면 프로그램이 뻗어버립니다 ㄷㄷ)
우리가 에셋을 추출할 게임 데이터를 솎아내는 과정을 거쳐야 합니다.
만약 에셋 전체를 뜯어보고 싶은 경우, 전체 용량이 꽤 크니 1024개 폴더를 적당한 개수의 묶음으로 나눈 뒤
여러 번에 걸쳐 앱뜯을 하는 방법을 쓰면 됩니다. (안 그러면 프로그램이 뻗음)
그런데 용량이 꽤 나가는지라 최소 10개 이상의 묶음으로 나눠야 원활한 앱뜯 진행이 가능합니다 ;;;
제 경우에는 꾸준히 앱뜯을 하니까 그때그때 업데이트 된 에셋만 새로 추출하면 되는데,
이런 경우엔 위 스샷처럼 수정된 날짜 기준으로 dat 폴더를 검색해서 최근에 업데이트 된 파일만 골라낼 수 있습니다.
저렇게 검색된 파일을 별도 폴더에 복붙한 다음 그 폴더를 대상으로 앱뜯을 하면 되죠.
(보통 신규 컨텐츠가 추가되면 100~200MB 정도의 데이터를 업데이트하니 복붙은 금방금방 합니다)
만약 전체 에셋 중에 내가 필요한 몇 개만 추출하고 싶은 경우라면 그 에셋을 저장하고 있는 파일을 딱 찾아내야 하는데,
보다시피 파일 이름이 죄다 무작위의 알파벳과 숫자 조합이다보니 그냥 찾으려면 사실상 불가능합니다.
어느 파일에 무슨 에셋이 저장되어 있는지를 다루는 메타 데이터를 분석하면 특정하는 것도 가능하겠지만,
그 정도까지 하려면 어느 정도의 전문적인 지식이 있어야 겠네요 ;;;
[ 2단계 : 게임 데이터 복호화 ]
에셋을 추출할 파일을 솎아냈다면 이제 Uma Decryptor를 이용하여 파일 복호화를 해줄 차례입니다!
(한섭의 경우엔 아직 데이터 암호화가 적용되지 않았으니 이 과정을 생략해셔도 됩니다 ㅇㅇ
나중에 한섭에도 적용된다면 마찬가지로 복호화를 해 줘야겠지만 ㅋ;;;)
그런데 Uma Decryptor는 GUI를 제공하지 않기 때문에, 아쉽게도 윈도우 명령 프롬프트(cmd)를 이용해서 실행시켜야 합니다.
(시작 메뉴에서 cmd로 검색해서 띄우시면 되는데, 잘 모르시겠으면 '명령 프롬프트 띄우는 법'이라고 검색해보시면 되겠습니다)
명령 프롬프트를 켠 다음에 Uma Decryptor가 설치된 폴더로 이동을 해주시고,
(명령 프롬프트 내에서 폴더 이동을 하려면 cd 명령어를 쓰면 되는데, 위 스샷을 참조하시거나 검색해보시면 되겠습니다)
거기서 UmaDecryptor.exe가 복호화를 실행하도록 이것저것 옵션을 붙여서 실행 커맨드를 아래와 같이 입력해주시면 됩니다.
UmaDecryptor.exe decrypt-dat -i "(복호화 할 파일 경로)" -o "(복호화된 파일을 저장할 경로)" -m "(meta 파일 경로)" -v
여기서 'meta 파일 경로'라는 것이 좀 생소하실텐데,
어느 파일에 어떤 에셋이 저장되어 있는지를 기록해둔 메타 데이터 파일을 말합니다.
dat 폴더의 바로 상위 폴더로 가보면 'meta'라는 이름의 파일(확장자 없음)이 있는데, 그 파일의 위치를 입력해주시면 됩니다.
위 스샷에도 나오지만, 참고하시라고 제가 사용한 실행 커맨드의 예시를 가져와 보자면 아래와 같은 식입니다 ㅇㅇ
(제 경우엔 최근 업데이트 된 파일들을 바탕화면의 'RIP'이란 이름의 폴더에 복사해놨고
이걸 복호화해서 마찬가지로 바탕화면의 'RIP_d'라는 이름의 폴더에 저장하려고 하는데, 이를 고려한 실행 커맨드입니다)
UmaDecryptor.exe decrypt-dat -i "C:\Users\DeNaT\Desktop\RIP" -o "C:\Users\DeNaT\Desktop\RIP_d" -m "D:\Games\Umamusume\umamusume_Data\Persistent\meta" -v
참고로 GitHub의 Uma Decryptor 관련 설명을 보면 여러 가지 옵션을 걸어서 위 방식 말고도 다양한 방식으로 복호화를 할 수 있는데,
명령 프롬프트를 이용한 프로그램 실행에 익숙하신 분들은 Readme 문서를 읽어보시고 이런저런 옵션을 시도해보셔도 되겠네요 ㅎ
이미 복호화가 완료 된 파일이 있어도 건너뛰지 않도록 옵션을 걸거나, 처리할 용량이 많은 경우 다중 스레드를 사용하도록 한다거나 등, 다양한 옵션이 있더라구요 ㅇㅇ (다만 문서가 중국어라서 번역기의 도움을 받아야...)
여하튼 실행 커맨드를 이용해 Uma Decryptor를 실행하면 위 스샷처럼 복호화 진행 과정이 명령 프롬프트에 쭉 출력됩니다 ㅇㅇ
웬만하면 문제없이 돌아가긴 하는데, 간혹 일부 파일들은 다른 방식으로 암호화되어 있는지 에러를 뱉어내며 복호화가 되지 않던...
그래도 에러가 뜨는 파일 수는 체감상 전체의 1% 정도밖에 안 되기 때문에 크게 문제가 되지는 않을 것으로 보입니다.
왼쪽은 복호화를 진행하기 전 데이터 파일들의 모습, 오른쪽은 복호화가 완료된 데이터 파일들의 모습입니다.
Asset Studio에서 왼쪽 폴더(복호화 전)를 로드하면 암호화가 되어있다며 온갖 에러를 뱉어내고 아무런 에셋도 추출하지 못하지만,
오른쪽 폴더(복호화 후)를 로드하면 별 에러 없이 평범하게 데이터를 로드해서 에셋 추출이 가능해집니다 ㅎ
[ 3-1단계 : Asset Studio로 데이터 로드하기 ]
비교적 성가신 단계는 이제 다 끝났고, 마지막으로 Asset Studio를 실행시켜 데이터 로드 및 에셋 추출만 하면 됩니다!
명령 프롬프트(cmd)를 활용해야 해서 다소 귀찮았던 Uma Decryptor와는 달리,
Asset Studio는 GUI 형태로 제공되기 때문에 딸깍 몇 번으로 손쉽게 사용이 가능합니다 ㅎ
Asset Studio 실행 후 상단 메뉴에서 [File] - [Load folder] 메뉴를 통해 에셋을 추출할 게임 데이터들을 모아둔 폴더를 지정해주시면
해당 폴더 및 하위 폴더에 들어있는 모든 데이터들을 쭉 로드하며,
그 뒤 상단 탭에서 [Asset List] 탭을 선택하시면 로드한 데이터 내에 들어있는 모든 에셋의 목록이 뜨게 됩니다.
프로그램의 기본 설정값이 잘 구성되어 있기 때문에 별도로 옵션을 건드릴 필요는 딱히 없으나,
혹시나 Asset Studio 실행 시 함께 뜨는 로그 창이 번거로우신 분들의 경우엔
상단 메뉴에서 [Debug] - [Enable Console] 메뉴의 체크를 해제하셔서 끄실 수 있습니다 ㅇㅇ
[ 3-2단계 : 원하는 에셋 찾아보기 ]
이제 다 끝났습니다! 로드 된 에셋 목록을 뒤져보며 원하는 에셋을 찾아보기만 하시면 됩니다 ㅇㅇ
특정 에셋을 선택하면 화면 우측에서 에셋 내용을 미리보기로 보여 주는데,
이걸 이용하면 좀 더 편하게 원하는 에셋을 찾아보실 수 있습니다 ㅇㅇ
(제가 Asset Studio를 애용하는 이유이기도 하죠 ㅎ)
참고로 온갖가지 로드 가능한 에셋들이 모두 목록에 뜨는데,
상단 메뉴 중 [Filter Type] 메뉴를 이용해 특정 타입의 에셋만 필터링해서 볼 수 있습니다.
- Sprite, Texture2D : 각종 이미지 에셋입니다. Unity 엔진 내부적으론 Sprite는 2D 이미지, Texture2D는 3D 모델링에 사용되는 이미지로 구분합니다만, 말딸의 경우엔 Sprite는 작은 이미지, Texture2D는 큰 이미지라고 이해하셔도 무방합니다.
- Mesh : 3D 모델링 에셋입니다. Asset Studio에선 3D 모델링에도 미리보기를 제공하기 때문에, 이리저리 회전시켜가며 구경하는 재미가 있습니다.
- TextAsset : 각종 텍스트 데이터 에셋입니다. 육성 이벤트의 대화 지문이나 위닝 라이브에 나오는 가사 등의 온갖가지 텍스트가 저장되어 있고, 이 또한 미리보기로 그 텍스트 내용을 확인해볼 수 있습니다.
- 그 외에 3D 모델링의 애니메이션 정보를 다루는 Animation, AnimationClip, Animator, AnimatorController, 게임 전반의 동작 정보를 다루는 MonoBehaviour, MonoScript 등의 다양한 에셋들이 있으나, 미리보기가 불가능하기도 하고 이걸 상세히 뜯어보려면 좀 더 전문적인 지식이 필요해서 크게 신경쓰지 않으셔도 됩니다.
상단 메뉴의 [Export] 메뉴를 사용하셔도 되고, 에셋 선택 후 컨텍스트 메뉴(마우스 우클릭하면 나오는 메뉴)를 열어 Export 기능을 호출하셔도 됩니다 ㅇㅇ
특별히 옵션을 변경하지 않았다면 추출한 에셋은 데이터를 로드한 폴더의 하위 폴더에 자동 저장되며,
이미지 파일은 png 형식으로 추출(투명 레이어 등이 있어서 png 형식이 좋습니다)됩니다 ㅇㅇ
4.5주년이 되어가도록 데이터에 암호화를 안 걸어놓던게 말딸이라 오랫동안 편하게 앱뜯하며 놀았는데,
요번에 갑작스레 암호화를 거는 바람에 이거 해결할 방법 찾느라 간만에 고생 좀 했네요 ㅇㅁㅇ
(언젠가 데이터 암호화를 하는 날이 오긴 오겠거니 생각은 했었지만 그게 이번일 줄이야...)
복호화를 해야한다는 건 금방 알아냈지만, 그걸 직접 할 수 있을 정도의 전문적인 지식은 또 없어서
누가 복호화 알고리즘을 적용한 Asset Studio를 새로 업데이트 해주거나 관련한 새로운 툴이 나오기를 오매불망 기다렸는데,
5ch(일본 커뮤니티)의 말딸 앱뜯 쓰레드에서 Uma Decryptor에 대해 언급한 걸 겨우 찾아내서 다행히 해결을 한....ㄷㄷ
이번 업데이트로 기존 앱뜯 방식이 막혀서 고민하시던 분들,
그리고 원래 앱뜯을 해보진 않았으나 관심있으시던 분들에게
이 글이 도움이 되기를 바랍니다 ㅎㅎ

![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_1.png](https://i2.ruliweb.com/img/25/10/09/199c8c970204cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_2.png](https://i1.ruliweb.com/img/25/10/09/199c8c9a0ca4cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_3.png](https://i1.ruliweb.com/img/25/10/09/199c8c9aabd4cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_4.png](https://i1.ruliweb.com/img/25/10/09/199c8c9b81b4cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_5.png](https://i1.ruliweb.com/img/25/10/09/199c8c9c8954cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_6.png](https://i2.ruliweb.com/img/25/10/09/199c8c9da994cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_7.png](https://i3.ruliweb.com/img/25/10/09/199c8c9ebed4cf463.png)
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기2_8.png](https://i2.ruliweb.com/img/25/10/09/199c8c9fc804cf463.png)
(IP보기클릭)183.96.***.***
(IP보기클릭)49.166.***.***
글섭 오픈 이후로 양덕들 앱뜯 속도나 규모가 장난이 아니었던 듯요 ㄹㅇ... 저도 최근에 유튜브에서 양덕이 말딸 보이스 추출한 모음 영상 본 기억이 있네요 ㅋㅋ | 25.10.10 14:42 | |
(IP보기클릭)218.37.***.***
(IP보기클릭)106.161.***.***
| 25.10.10 16:29 | |
(IP보기클릭)210.97.***.***
(IP보기클릭)49.166.***.***
복호화 툴 찾는데 걸린 시간에 비하면 글 쓰는데 걸린 시간은 정말 찰나였던....ㅋㅋㅋㅋ 원래부터 있던 툴이 아니고 이번 업데이트 이후에 신규 개발된 툴이어서 일본쪽 쓰레 안 봤으면 찾는데 훨씬 더 오래 걸렸을 수도 있겠더라구요 ㄷㄷ | 25.10.10 20:22 | |