Skip to content

Inndy/ggpk-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ggpk-tools

  • 010 editor binary template for GGPK file format.
  • A simple program implemented in C (for speed) to list files in a GGPK

Usage

Under bash:

./ggls Content.ggpk or VERBOSE=1 ./ggls Content.ggpk

Windows Problems

ggls won't work with MinGW since there's bug when handling 64bits file offset.

If you want to run this program on Windows, you can use VisualStudio or get Visual C++ Build Tools or using WSL.

Sample Output

First column is path, second column is file offset (in hex), third is file length (in hex).

$ VERBOSE=1 ./ggls Content.ggpk | grep '//Metadata/UI/'
//Metadata/UI/tou.txt,1b9aca282,10534
//Metadata/UI/Credits.ui,1b9ada7f8,ad09e
//Metadata/UI/UISettings.xml,1b9b878e0,49d2
//Metadata/UI/UISettings.Portuguese.xml,1b9b8c312,58a
//Metadata/UI/UISettings.Tencent.xml,1b9b8c8f6,bae
//Metadata/UI/LoadingState/LoadingScreen.ui,1b9a99a98,36c
//Metadata/UI/LoadingState/AreaLoadingScreen.ui,1b9a99e5a,4ca
//Metadata/UI/LoadingState/WaitingState.ui,1b9a9a370,200
//Metadata/UI/PreGameState/LoginScreenCommon.ui,1b9a9a634,ae6
//Metadata/UI/PreGameState/LoginScreenTencent.ui,1b9a9b172,171e
//Metadata/UI/PreGameState/CreateCharacterScreen.ui,1b9a9c8ee,362c
//Metadata/UI/PreGameState/LoginQueue.ui,1b9a9ff62,9cc
//Metadata/UI/PreGameState/ConnectingFrame.ui,1b9aa0980,78a
//Metadata/UI/PreGameState/GarenaLoginScreen.ui,1b9aa1160,a8c
//Metadata/UI/PreGameState/SteamLoginScreen.ui,1b9aa1c40,1afa
//Metadata/UI/PreGameState/LoginScreenGarenaWithGatewayList.ui,1b9aa37ae,105a
//Metadata/UI/PreGameState/CreateCharacterScreen.Tencent.ui,1b9aa4876,381e
//Metadata/UI/PreGameState/LoginScreen.ui,1b9aa80de,2f18
//Metadata/UI/PreGameState/CreateCharacterScreenOverlays2.ui,1b9aab066,a3a
//Metadata/UI/PreGameState/DailyDeal.ui,1b9aabae6,12b0
//Metadata/UI/PreGameState/DeleteCharacterScreen.ui,1b9aacdf4,1040
//Metadata/UI/PreGameState/CreateCharacterScreenOverlays1.ui,1b9aadea4,a3c
//Metadata/UI/PreGameState/ChangePasswordScreen.ui,1b9aae93c,173e
//Metadata/UI/InGameState/CreateTencentAccountWindow.ui,1b9abe304,1a44
//Metadata/UI/InGameState/WaitingForTradeWindow.ui,1b9abfda6,928
//Metadata/UI/InGameState/HUD/HUD.ui,1b9ab01b2,5b8c
//Metadata/UI/InGameState/HUD/HUD.Tencent.ui,1b9ab5d88,63d2
//Metadata/UI/InGameState/GarenaTWEscapeMenu.ui,1b9ac0726,1468
//Metadata/UI/InGameState/ConfirmationWindow.ui,1b9ac1be6,ae2
//Metadata/UI/InGameState/DeathScreen/DeathScreen.ui,1b9abc1f4,b50
//Metadata/UI/InGameState/EscapeMenu.ui,1b9ac2710,14b8
//Metadata/UI/InGameState/CharacterPanel/CharacterPanel.ui,1b9abcde8,145a
//Metadata/UI/InGameState/TencentEscapeMenu.ui,1b9ac3c1e,1162
//Metadata/UI/InGameState/BuyMarketTabWindow.ui,1b9ac4dd8,b04
//Metadata/UI/InGameState/GarenaEscapeMenu.ui,1b9ac5930,1162
//Metadata/UI/InGameState/CreateSteamAccountWindow.ui,1b9ac6af6,3678

How To Extract Resource From GGPK

Use this command to extract tou.txt:

dd if=Content.ggpk bs=1 of=tou.txt skip=$((0x1b9aca282)) count=$((0x10534))

Or using python

with open('Content.ggpk', 'rb') as fin:
    fin.seek(0x1b9aca282)
    with open('tou.txt', 'wb') as fout:
        fout.write(fin.read(0x10534))

Or using 010 editor

  1. Press Ctrl-Shift-A (Select Range)
  2. Input Start: 1b9aca282 and Size: 10534 then press Enter
  3. Right click on selected area
  4. "Selection" -> "Save Selection"
  5. Done!

Warning

ggls does not properly handle UTF-16LE encoding string within GGPK file, this program may broken in the future.

References

libggpk

License

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published