유니티 게임 한글화 - IL2CPP 게임에서 DLL 생성 (윈도우, 안드로이드)

2021. 11. 28. 17:31·한글패치 관련 짧은 글들

유니티 게임은 mono방식으로 빌드할 수도, il2cpp방식으로 빌드할 수도 있다.
mono방식은 {게임이름}_data\Managed 폴더 안에 dll파일들이 들어 있으며
il2cpp방식은 {게임이름}_data\ 폴더 내부에 il2cpp_data 폴더가 존재한다는 것으로 구분할 수 있다.

.assets 파일에 들어있는 MonoBehaviour 작업 시, dll파일들이 있어야 정상적으로 작업할 수 있다.

만약 dll파일들이 없다면 MonoBehaviour 파일을 정상적으로 deserialize할 수 없으므로,

일부 기본적인 정보들만 출력되게 된다. 그러므로, 당연히 내용 수정을 할 수 없다.


il2cpp 방식은 dll이 따로 없기에, 아래 작업을 하여 dll파일을 생성한 후 MonoBehaviour 파일을 덤프떠야 정상적으로 보거나 dump export/import가 가능하게 된다.

아래는 dll이 없는 상황에서의 비정상적인 출력과, dll 생성 후 정상적인 출력을 한 예시이다.

 

<dll이 없이 덤프 뜬 모습>

- dll 없이 그대로 덤프 뜬 모습이다. 기본적인 정보들밖에 없다.

 

 

<dll 생성 후 덤프 뜬 모습>

- dll 생성 후 덤프를 뜬 모습이다.

데이터가 알기 쉽게 덤프떠졌으므로, 수정이 가능해졌다.

 

 


 

 

필요한 툴: Il2CppDumper (https://github.com/Perfare/Il2CppDumper)
 

1. PC

(예시 - 늑대와 향신료 VR 2)
 

게임 exe 파일이 있는 곳에 GameAssembly.dll이 있다.
이게 il2cpp binary file이다.
 
{게임이름}_data\ 폴더 내부에 il2cpp_data가 존재하며,
il2cpp_data\Metadata에 global-metadata.dat 파일이 있다.
이게 global metadata 파일이다.
 
다운받은 Il2CppDumper.exe를 실행한 후,
첫번째로 il2cpp binary file(GameAssembly.dll)를 선택한 다음,
두번째로 global-metadata(global-metadata.dat)를 선택하면
 

여러 과정이 지나간 후 Done!이 뜨면서 정상적으로 DummyDll 폴더가 생성된다.
 

물론 dll파일도 정상적으로 들어 있는 것을 볼 수 있다.
 

이제 DummyDll 폴더의 이름을 Managed로 바꾼 후 {게임이름}_data\ 폴더에 넣은 후,
UABE나 UAAE나 UABEA같은 툴로 MB파일을 덤프뜨면 정상적으로 내용이 나올 것이다.
 
 
 

2. 안드로이드

(예시 - OPUS The Day We Found Earth)
 

apk파일과 Android\obb\{게임패키지명}\obb파일이 있다.
apk 파일의 압축을 푼 후, 파일 검색을 하거나 직접 경로로 들어가 보자.
 
 

lib\arm64-v8a 폴더에 들어가니 libil2cpp.so 파일이 보인다. 
이것이 il2cpp binary file이다.

assets\bin\Data\Managed\Metadata를 들어가니 global-metadata.dat 파일이 보인다.
이것이 global metadata 파일이다.
 
마찬가지로 Il2CppDumper.exe 실행 후
첫번째 파일로 libil2cpp.so 파일을 선택해주고
두번째 파일로 global-metadata.dat 파일을 선택해준다.
 

역시 정상적으로 생성되는 것을 확인할 수 있다.
이것도 마찬가지로 생성된 DummyDll 폴더를 Managed로 바꾼 후 적절하게 써먹으면 된다.

저작자표시 (새창열림)

'한글패치 관련 짧은 글들' 카테고리의 다른 글

멜론로더 포함하여 배포시 유의점 (il2cpp 게임)  (5) 2021.12.19
XUnity.AutoTranslator spam prevention 최소화  (0) 2021.12.08
CrystalTile2의 이미지패턴 기능 <ObjH-1234 / ObjV-1324>  (0) 2021.11.01
유니티 게임 한글화 - SDF 폰트 교체 (AtlasPopulationMode=1인 경우)  (0) 2021.10.11
인코딩 / 전-반각 관련 사이트  (0) 2021.08.24
'한글패치 관련 짧은 글들' 카테고리의 다른 글
  • 멜론로더 포함하여 배포시 유의점 (il2cpp 게임)
  • XUnity.AutoTranslator spam prevention 최소화
  • CrystalTile2의 이미지패턴 기능 <ObjH-1234 / ObjV-1324>
  • 유니티 게임 한글화 - SDF 폰트 교체 (AtlasPopulationMode=1인 경우)
Snowyegret
Snowyegret
기록용 블로그입니다.
  • Snowyegret
    Snowyegret
    Snowyegret
  • 공지사항

    • 문의: 디스코드 snowyegret12
    • 연락처(디스코드) 계정 변경 안내
    • 블로그 운영 재개 안내
  • 링크

    • 블로그 메인
    • 방명록/문의사항
    • Github Repositories
    • Github Gists
    • 분류 전체보기 (87)
      • 늑대와 향신료 VR2 한글패치 (1)
      • 장난을 잘 치는 타카기양 VR 1학기 한글패치 (1)
      • Shephy 카드 설명 한국어 텍스쳐 모드 (1)
      • 한글패치 관련 짧은 글들 (37)
      • 한글패치 작업 내역 (11)
      • 한글화 분석 (작업X) (5)
      • python snippets (4)
      • 게임 (2)
      • 간단프로그램 (2)
      • IT (18)
      • TODO (2)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.5
Snowyegret
유니티 게임 한글화 - IL2CPP 게임에서 DLL 생성 (윈도우, 안드로이드)
상단으로

티스토리툴바