global-metadata.dat이 없는 경우의 덤프법 (frida 이용)

2025. 3. 23. 18:53·한글패치 관련 짧은 글들
const kernel32 = Process.getModuleByName('kernel32.dll');
const GetModuleHandleW = new NativeFunction(Module.getExportByName('kernel32.dll', 'GetModuleHandleW'), 'pointer', ['pointer']);
const FindResourceW = new NativeFunction(Module.getExportByName('kernel32.dll', 'FindResourceW'), 'pointer', ['pointer', 'pointer', 'pointer']);
const LoadResource = new NativeFunction(Module.getExportByName('kernel32.dll', 'LoadResource'), 'pointer', ['pointer', 'pointer']);
const LockResource = new NativeFunction(Module.getExportByName('kernel32.dll', 'LockResource'), 'pointer', ['pointer']);
const SizeofResource = new NativeFunction(Module.getExportByName('kernel32.dll', 'SizeofResource'), 'uint', ['pointer', 'pointer']);

const hModule = GetModuleHandleW(ptr(0));
const hResource = FindResourceW(hModule, ptr(0x65), ptr(0xA)); // 0x65는 리스소 ID, 0xA는 타입입니다. 리소스 ID는 변경될 수 있으니 찾아서 쓰십셔

if (hResource.isNull()) {
    console.log('리소스를 찾을 수 없습니다.');
} else {
    const hGlobal = LoadResource(hModule, hResource);
    const lpResource = LockResource(hGlobal);
    const size = SizeofResource(hModule, hResource);

    console.log('리소스 주소:', lpResource);
    console.log('리소스 크기:', size);

    // 리소스 덤프
    const resourceData = Memory.readByteArray(lpResource, size);
    const filePath = 'D:\\Games\\testgame\\global-metadata.dat';
    const file = new File(filePath, 'wb');
    file.write(resourceData);
    file.flush();
    file.close();
    console.log('리소스를 덤프했습니다:', filePath);
}

 

위 코드를 frida에 물리면 된다.

frida -f ".\게임이름.exe" -l simple_dumper.js
저작자표시 비영리 (새창열림)

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

유니티 게임 한글화 시 한국어 조사 처리  (2) 2025.08.27
UnityPy 텍스쳐 삽입 시 "params must be an instance of BC7CompressBlockParams" 오류 해결  (0) 2025.03.31
UnityPy를 이용한 유니티 게임 MonoBehaviour 특정 텍스트 필드 추출/삽입  (0) 2025.03.04
IoStore를 사용하며 sig우회가 안되는 언리얼 게임 모드 로딩 방지 우회하기  (6) 2025.01.20
유니티 게임에서 대사 검색 쉽게 하기 (UnityPy 이용)  (4) 2025.01.01
'한글패치 관련 짧은 글들' 카테고리의 다른 글
  • 유니티 게임 한글화 시 한국어 조사 처리
  • UnityPy 텍스쳐 삽입 시 "params must be an instance of BC7CompressBlockParams" 오류 해결
  • UnityPy를 이용한 유니티 게임 MonoBehaviour 특정 텍스트 필드 추출/삽입
  • IoStore를 사용하며 sig우회가 안되는 언리얼 게임 모드 로딩 방지 우회하기
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
global-metadata.dat이 없는 경우의 덤프법 (frida 이용)
상단으로

티스토리툴바