[ 앱뜯 관련 글 모음 ]
※ [흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기 ☜
※ [흥미] 말딸 앱 뜯어보기 중급편 : master.mdb 뜯어보기
※ [흥미] 말딸 앱 뜯어보기 초급편2 : 사운드 뜯어보기
※ [흥미] 한섭 말딸 클라이언트의 이미지를 뜯어보자!
※ [흥미] 한섭 클라이언트 뜯어보기!! (1주년 직전까지)
※ [흥미] 한섭 클라이언트 뜯어보기!! (1.5주년 직후까지)
요즘 뜬금없이 필이 꽂혀서 말딸 앱 뜯어보는 방법을 공부 중인데,
애초에 전공도 이쪽 계열이었던데다 막상 해보니 의외로 재밌어서 열심히 파보고 있는 중입니다 ㅎ
당연히 어려운 경우도 있지만 반대로 생각보다 쉬운 경우도 있어서,
방법을 한 번 공유해보고자 사실은 나중에 까먹었을 때 쉽게 찾아볼 요량으로 글로 정리해봤습니다!
앱을 뜯어보면 이미지, 사운드, 모델링, 내부 시스템 등등 다양한 것들을 찾아볼 수 있는데,
일단 이번에는 그 중에서 가장 쉬운 이미지 파일을 추출하는 방법을 정리해봤습니다 ㅇㅇ
다행히도 이미지 파일 쪽은 압축이나 암호화가 전혀 되어있지 않아,
정리해둔 순서대로만 쭉 따라가면 누구든지 쉽게 파일 추출을 해보실 수 있습니다 +_+
준비물은 DMM판 우마무스메 게임, 그리고 Asset Studio GUI 라는 앱뜯 프로그램, 이렇게 두 가지입니다.
모바일이나 에뮬(블루스택 등)의 apk 파일에서 소스를 추출한 다음 프로그램에서 앱뜯을 하는 방법도 가능하지만,
DMM판을 쓰면 그런 번거로운 과정 필요없이 바로 소스 추출이 가능하니 DMM판을 설치하시는 것을 적극 추천합니다 ㅇㅇ
(참고로 모든 설명은 Window 기준입니다... iOS는 제가 가지고 있는 기기가 없어서 -_ㅠㅋ)
◆ 1단계 : Asset Studio GUI 준비
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기_1.png](https://i3.ruliweb.com/img/22/01/21/17e78c52d224cf463.png)
Asset Studio GUI 는 Unity 엔진 기반의 게임 내 리소스들(에셋)을 쉽게 볼 수 있게 해주는 프로그램인데,
아래의 링크로 들어가셔서 Asset Studio GUI와 알맞은 버전의 닷넷(.NET) 프레임워크를 각각 받으시면 됩니다 ㅇㅇ
프레임워크 설치가 필요한 게 좀 귀찮기는 합니다만, 어쨌든 Asset Studio GUI 자체는 무설치(포터블)라서 편하게 쓰실 수 있습니다 ㅎ
☞ Releases · Perfare/AssetStudio · GitHub
☞ Releases · RazTools/Studio · GitHub
☞ 닷넷(.NET) 프레임워크 다운로드
[25.01.20 내용 추가]
원래 링크를 걸어놨던 Asset Studio GUI 프로젝트는 유지보수가 안 되고 있었긴 하지만 (마지막 업뎃이 22년 1월)
이후 3년 정도는 딱히 문제없이 잘 써오고 있었습니다.
그러다 푸리오소 업데이트와 함께 기존 다운 받아놨던 말딸 앱 데이터들도 대규모로 재다운로드 받으라고 공지가 올라왔던데,
힘들게 업데이트를 새로 싹 받아놨더니 기존 Asset Studio GUI 프로그램이 에러를 엄청 뱉어내더라구요...
(내부 데이터 저장 방식에 변화가 생겼기 때문인지, 아니면 제 PC 환경에 문제가 있었던 건지 어느 쪽인지는 모르겠음)
그래서 문제 해결을 위해 좀 뒤져봤는데
다른 유저가 기존의 Asset Studio GUI 프로젝트를 이어받아 업데이트하던 게 있어서 (이쪽은 마지막 업뎃이 24년 1월)
해당 프로젝트의 링크를 대신 위에 걸어놨습니다.
새로운 링크의 Asset Studio GUI 프로젝트, 그리고 거기에 대응하는 알맞은 닷넷(.NET) 프레임워크를 받으시면 되겠습니다.
(제 경우엔 .NET 8.0 버전에 대응하는 Asset Studio GUI를 받았고, .NET도 그에 맞춰 9.0 버전에서 8.0 버전으로 재설치(다운그레이드)했습니다....ㅋㅋ;;;)
◆ 2단계 : 게임 데이터가 설치된 폴더 찾기
![[흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기_2.png](https://i1.ruliweb.com/img/22/01/21/17e78c58a024cf463.png)
다음으로는 뜯어볼 앱이 실제로 설치된 경로를 찾아줘야 하는데, 아무것도 모르고 시작하면 이 단계가 의외로(?) 까다롭습니다 -_-ㅋ
DMM 게임 플레이어에서 말딸 앱을 설치할 때 설치 경로를 지정해줄텐데,
이게 특이하게도 해당 경로에 설치되는건 200~300MB 정도의 기본 게임 데이터 뿐이거든요 ;;;
실제로 게임에서 쓰이는 데이터들(게임 켠 상태에서 다운로드 받는 GB 단위의 바로 그 데이터)은 다른 폴더에 자동 다운로드 되는데,
그 경로는 'C:\Users\(사용자 계정명)\AppData\LocalLow\Cygames\umamusume\dat' 폴더입니다 ㅇㅇ
(기껏 설치 경로 지정해둬봤자, '내 문서' 폴더의 숨겨진 하위 폴더에 몇 GB 짜리 데이터를 강제로 다운받는 게임...)
처음엔 이걸 몰라서 기본 게임 데이터가 있는 폴더만 뒤져보다가 며칠을 날렸죠 -_ㅠㅋㅋ
혹시나 위 경로에 폴더가 없다면, 그냥 '내 문서' 폴더에서 'umamusume'로 검색을 때려버리시면 찾으실 수 있을겁니다.
제 경우에도 제가 참고했던 글에 나오는 폴더 경로대로 찾아봤더니 안나와서, C 드라이브 전체로 검색을 해서 찾았거든요 -_-ㅋㅋ
'dat' 폴더에 들어가보면 위 스샷처럼 1000여개라는 엄청난 수의 폴더로 데이터가 나뉘어있고,
그 폴더 안에도 백 수십 개의 파일로 데이터들이 나뉘어져 있는데,
전체 파일 수만 따져도 십만 개(!) 정도가 나옵니다 ㄷㄷ (글 쓰는 날 기준으로는 대충 11.3GB 정도 용량이 나오네요 ;;;)
◆ 3단계 : 추출해야 할 파일 솎아내기
앞서 설명드렸듯이 파일 수 자체가 몇 만 단위인지라, 앱뜯 프로그램으로 저걸 한꺼번에 로드하면 프로그램이 뻗어버립니다 ;;;
그래서 하위 폴더의 일부만 로드하든가, 아니면 최근에 업데이트 된 파일들만 골라내서 로드하든가 해줘야합니다 ㅇㅇ
제 경우엔 어제(22.01.20) 업데이트 된 파일들을 뜯어볼 생각이라, 어제 날짜로 수정된 파일들만 골라내볼 생각입니다.
그런데 이게 업데이트 될 때마다 한 폴더 안에 가지런히 모인 채로 추가되는 구조가 아니고,
업데이트 되는 파일들이 앞서 보신 수많은 하위 폴더들 여기저기에 분산되어 추가됩니다 -_-
(아마도 저처럼 앱뜯을 시도하는 사람들이 특정 파일을 쉽게 찾지 못하게 하려는 의도겠죠...)
그래서 위 스샷에서 보시는 것 처럼, 수정된 날짜 기준으로 검색을 돌려줘야 합니다 ㅎ...
'dat' 폴더에서 검색을 돌리시면 어제 수정 또는 추가된 하위 폴더와 파일들이 검색되는데,
그 중에서 파일들만 선택해서 별도의 폴더에 복사해주시면 되겠습니다 ㅇㅇ
(보통의 업데이트가 100MB 내외의 용량, 1000여개 내외의 파일로 이뤄지니, 복사/붙여넣기는 금방 됩니당)
◆ 4단계 : Asset Studio GUI 로 에셋 로드하기
이제 상대적으로(?) 성가신 준비 단계는 다 끝났고, 본격적으로 Asset Studio GUI 를 이용해 앱을 뜯어보는 일만 남았습니다!
Asset Studio GUI 를 켜신 다음, 상단 메뉴에서 [ File ] - [ Load folder ] 를 통해 앞서 골라냈던 파일들이 저장돼있는 폴더를 선택해주시면 끝입니다 ㅇㅁㅇ
추출이 완료된 뒤에 [ Asset List ] 탭을 눌러보시면, 각종 리소스들의 목록을 확인하실 수 있습니다 ㅇㅇ
(대충 해보니, 최대 1~2만개 정도의 파일까지는 프로그램이 뻗지 않고 잘 로드해주는 것 같더군요 ㅎ)
참고로 별도로 옵션을 건드려줄 필요 없이, 기본 옵션인 상태 그대로 로드하시면 됩니다.
사운드나 영상 등등을 추출할 때는 옵션을 건드려야 할지도 모르겠지만... 이미지 정도는 그럴 필요가 없더군요 ㅇㅇ
◆ 5단계 : 필터링으로 이미지 목록만 보이게 하기
상단 메뉴를 보시면 [ Filter Type ] 이라고 해서 리소스를 타입별로 필터링할 수 있는 메뉴가 있는데,
이미지의 경우엔 'Sprite'나 'Texture2D' 로 필터링 하시면 됩니다 ㅇㅇ
특히 우리가 보통 찾게 되는 스탠딩 모델링 이미지나 서포트 카드 이미지 등은 Texture2D 쪽에 있습니다.
Sprite 쪽은 대부분 버튼이나 아이콘, 또는 숫자 이미지 등의 작은 이미지들이구요.
위 스샷의 경우엔 파일명 순서로 정렬해둔 상태인데,
저렇게 해두고 보면 동일한 종류의 이미지들끼리 모여있어서 찾기가 훨씬 수월합니다 ㅎ
참고로 주요한 파일 타입들에 대해 간략히 설명해보자면 아래와 같습니다. (그다지 중요하게 보실 필요까지는 없습니다?)
* Animation, AnimationClip, Animator, AnimatorController : 3D 모델링 파트들의 애니메이션 정보. (예컨데 웃을 때 눈썹 파트의 움직임 같은거라던가...) 이쪽은 제가 아직 공부중이라 자세히는 모르겠네요 -_ㅠ...
* AudioClip : 보이스나 배경음악 등의 각종 사운드. 아쉽게도 우마무스메는 사운드 파일을 암호화해서 숨겨놓은 케이스라, 게임 전체를 뒤져봐도 AudioClip으로 분류되는 파일이 하나도 없습니다 ㄷㄷ... 소녀전선 같은 케이스는 AudioClip으로 분류돼있어서 쉽게 음원 추출이 된다던데 ㅠ
* Mesh : 3D 모델링 파트.
* MonoBehaviour, MonoScript : 게임 전반의 동작 정보. 대충 실제로 프로그래밍된 코드 부분 정도로 이해하시면 될 것 같습니다. 이쪽은 정말로 코딩의 영역...
* Sprite, Texture2D : 각종 이미지. 위에 적어놨듯, Sprite는 작은 이미지 위주, Texture2D는 큰 이미지 위주 정도로 이해하시면 편합니다.
* TextAsset : 각종 문자열. 그리고 암호화(!)된 각종 리소스. 등장인물들의 대사나 위닝 라이브에 나오는 가사 등등의 텍스트도 물론 있지만, 뜯어보니까 사운드 등을 암호화해서 텍스트로 저장해놓고 게임 내에서 복호화하여 사용하고 있는 경우도 많더군요 -_- ㄷㄷ
◆ 6단계 : 원하는 이미지 찾아보기
다 끝났습니다! 이제 남은 일은 목록을 뒤져보며 앱뜯 이미지들을 감상해보고 원하는 파일들을 찾아보는 것 뿐입니다 ㅎ
보시다시피 이미지 파일들은 파일 선택과 동시에 우측에서 프리뷰가 뜨기 때문에, 바로바로 확인해볼 수 있습니다.
혹시나 프리뷰가 안뜬다면, 상단 메뉴의 [ Options ] - [ Enable preview ] 가 체크돼있는지 확인해보세요 ㅇㅇ
기본값이 체크 상태이긴 한데, 혹여나 안돼있었다면 체크 하신 다음 다시 로드해주시면 됩니다.
이번에 치요노 오 업데이트와 함께 아르당이랑 무테키의 승부복 업데이트도 됐던데,
보니까 승부복을 입은 채로의 스탠딩 이미지도 같이 업데이트 돼있더군요 ㅇㅇ 어디 쓰이는 파일이지 대체
(나무위키엔 승부복 업데이트는 됐지만 아직 실장되지 않은 애들의 스탠딩 이미지가 항상 올라와있던데,
이미지를 어디서 구했나 했더니 이렇게 구한거였음 ㄷㄷ)
선택한 파일들 내의 모든 리소스를 다 로드해주는 프로그램이다보니,
위 이미지처럼 일반적인 용도로는 쓸 일이 없어보이는 텍스쳐 이미지도 다 로드됩니다 ㅋ
아마 모델링 추출해서 쓰는 분들은 저런 이미지도 같이 추출해서 많이 쓰실 것 같네요 ㅇㅇ
◆ 7단계 : 이미지 추출하기
단순 감상(?)에서 끝나지 않고 로드한 이미지를 다른 용도에 쓰려는 경우라면, 해당 이미지를 추출하는 작업도 필요하겠죠.
추출하는 데에는 여러 방법이 있는데, 위 스샷에서 처럼 우클릭 메뉴로 원하는 특정 이미지만 추출할 수도 있고,
상단 메뉴를 이용하여 로드된 전체 파일을 추출하거나 필터링된 타입의 파일만 추출하는 등, 원하는 방식으로 해주시면 됩니다 ㅇㅇ
참고로 앞서 보셨던 일부 이미지들은 가로-세로 비율이 정상적으로 돼있지만,
위 스샷의 아이콘 이미지같이 가로-세로 비율이 찌그러진 상태인 이미지들이 훨씬 더 많습니다 ㄷㄷ
그래서 추출한 뒤에 별도의 프로그램을 통해 정상적인 가로-세로 비율의 이미지로 고쳐주는 2차 작업을 해주셔야 합니다 -_ㅠㅋ
◆ 번외 : Sprite, Mesh
이번 치요노 오 업데이트에서 수정 및 추가된 파일에는 Sprite 리소스가 없길래,
기존 파일들에서 리소스를 로드하여 아무거나 스샷 찍어봤습니다.
보통 저런 아이콘 종류의, 작거나 중간 크기 정도 되는 이미지들이 대부분을 차지합니다 ㅇㅇ
Mesh 타입의 리소스는 보시다시피 3D 모델링 데이터입니다 ㅇㅇ
대부분은 뭔지도 알아먹기 힘든 부분 모델링이지만, 저렇게 딱 봐도 어?저거! 싶은 모델링들도 있더군요 ㅋㅋ
제가 3D 쪽은 아직 문외한이라 저걸 추출해서 써먹는 방법까진 모르겠지만...
Asset Studio GUI 자체에서 3D 모델링도 프리뷰를 지원하기에 이래저래 돌려보며 구경하는 맛은 있습니다 ㅎㅎ
(그나저나 머리 모델링 쭉 돌려보는데, 보자마자 누구 머리인지 거의 다 맞추는 저 자신이 좀 무서워짐 ㄷㄷ)
대충 (말딸 앱 한정으로) 손쉽게 뜯어볼 수 있는 리소스들은 이 정도인 것 같습니다 ㅇㅇ
사실 레이싱 카니발 목록 화면에 나오는 배경음악이 너무 괜찮아서 그걸 어디서 구해보려고 하다가 앱뜯 공부(?)를 시작하게 됐는데,
막상 사운드 리소스쪽은 암호화를 해놓은 상태인데다 사운드 대부분이 숨겨져있는 상태라 쉽게 안되더군요 ㅠㅠ
그나마 전공이 이쪽인데다 재미붙여서 한번 도전해보고 있긴 한데, 난이도가 어느 정도일진 아직도 가늠이 안됩니다 ㄷㄷ
만약 잘 풀려서 음원 추출에 성공한다면 조만간 앱 뜯어보기 중급편이 나올 것이고,
반대로 중급편이 한참을 기다려도 안나온다... 싶으면 앱 뜯어보다 ㅈ망했나보다...하고 생각해주시면 되겠습니다 핡ㅋㅋㅋㅋㅠ
(IP보기클릭)210.179.***.***
(IP보기클릭)121.125.***.***
이미지는 암호화가 안돼있어 바로 뽑아볼 수 있어 너무 다행입니다 ㅋㅋ 제 원래 목적이었던 사운드 쪽이 암호화 푸는거 때메 본격적인 헬게이트 시작 ㅋㅋㅋㅠ | 22.01.22 00:37 | |