한글패치 관련 짧은 글들

IoStore를 사용하며 sig우회가 안되는 언리얼 게임 모드 로딩 우회하기

Snowyegret 2025. 1. 20. 21:04

조건은 다음과 같습니다.

1. IoStore를 사용한다. (utoc이 존재함)

2. Pak 내 파일을 수정한다. (locres같은 경우)

3. 실행 옵션으로 -fileopenlog를 줘도 모드가 로딩되지 않는다.

 

버전별 세부 작동 조건은 확인해보지 않았으며,

작동 테스트 게임은 Fossilfuel 2 Demo입니다. (언리얼 5.1.1버전)

 

 

 

0. 필요 파일

- DB Sparking Zero UTOC Signature Bypass Patch ( https://www.nexusmods.com/dragonballsparkingzero/mods/18?tab=files&file_id=20 )

- AESDumpster ( https://github.com/GHFear/AESDumpster/releases )

- 게임 버전에 맞는 언리얼 엔진

- (필요에 따라) UnrealLocres ( https://github.com/akintos/UnrealLocres/releases )

 

 

 

1. Fmodel에 불러오기, (선택) 암호화 해제

Fmodel 상단 Directory - Selector - 하단에 Name과 게임 경로를 적고 우측 + 버튼을 누릅니다.

 

 

 

그럼 위 사진처럼 언리얼 엔진 버전을 선택 가능하며, OK를 누를 시 Fmodel App이 껐다 켜집니다.

 

 

 

Fmodel로 로드를 해보면, 좌측 하단 콘솔에 암호화된 아카이브가 있다고 나옵니다.

AES 암호화 키를 찾아봅시다.

 

 

 

{게임이름}/Binaries/Win64에 가보면 게임 이름으로 시작하는 exe 파일이 있습니다.

게임 exe 파일을 다운받은 AESDumpster에다가 드래그 & 드랍하면 위처럼 콘솔창에 키가 나옵니다. 엔트로피가 큰 키를 일단 씁시다.

위 키를 Fmodel 상단 메뉴 - Directory - AES를 누르면 나오는 윈도우에다

0x~ 형식으로 입력하시면 AES 암호화 해제가 끝납니다.

 

 

 

2. 파일 추출 및 수정

Fmodel로 수정할 파일을 추출해줍시다.

위 경우, locres를 추출하였으며, 좌측 하단 INFORMATION에서 이 파일이 pak파일 안에 들어있다는 것을 알아냈습니다.

pak 안에 들어있다는 것은, 별 공을 들이지 않고 수정이 가능하다는 소리입니다.

 

 

 

UnrealLocres.exe를 locres파일이 있는 폴더로 옮긴 후,

bat 파일을 만들거나 명령어를 직접 치시거나 해서 locres 파일을 수정합니다.

 

 

 

:: export.bat (locres to csv) 명령어
UnrealLocres.exe export Game.locres -f csv -o Game_export.csv
pause

:: import.bat (csv to locres) 명령어
UnrealLocres.exe import Game.locres Game_export.csv -f csv -o Game_edited.locres
pause

 

import 후, Game_edited.locres만 남기고 모두 삭제한 후, Game_edited.locres를 Game.locres로 이름을 바꿔주면 됩니다.

 

 

 

3. 모드 파일 패키징

Fmodel/Output/Exports의 {게임이름}폴더를 언리얼엔진 폴더로 옮깁니다.

 

 

 

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

set "currentDir=%cd%"
set "targetDir=%~1"

> "lista.txt" (
  for /r "%targetDir%" %%F in (*) do (
    set "tmp=%%~dpF"
    set "fname=%%~nxF"
    set "tmp=!tmp:%currentDir%=../../..!"
    set "tmp=!tmp:\=/!"
    set "tmp=!tmp!!fname!"
    echo "!tmp!"
  )
)
endlocal

Engine\Binaries\Win64\UnrealPak.exe "../../../Fossilfuel_2-Windows_P.pak" ^
  -Create="../../../lista.txt" ^
  -Compress
pause

pack-v11.cmd의 내용입니다.

위 코드를 cmd 파일로 저장합니다.

 

 

 

다음과 같은 창이 뜨면서 모드 제작이 완료됩니다.

 

 

 

4. UTOC Signature Bypass Patch 적용

{게임이름}/Binaries/Win64에 다운받은 파일의 압축을 풉니다.

끝입니다.

 

 

 

5. 작동확인

일단, 모드 pak파일 이외엔 아무것도 건들지 않은 상태입니다.

sig파일 복사 붙여넣기도 안했고, -fileopenlog 인수도 주지 않은 상태입니다.

 

 

 

수정한 부분들이 모두 정상작동합니다.