Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archive

The Original Forum. Game archives, full of resources. How to open them? Get help here.
zzz
beginner
Posts: 21
Joined: Wed May 21, 2014 2:36 pm
Has thanked: 2 times
Been thanked: 5 times

Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archive

Post by zzz » Sat Dec 20, 2014 11:08 pm

Sorry, I can't offer any more help than uploading an example archive, but I suspect people will want this more than your normal custom archive format because of the game's popularity.

Code: Select all

https://www.mediafire.com/?clrtv29a43y3fni

odrin
mega-veteran
mega-veteran
Posts: 170
Joined: Mon May 23, 2011 2:43 am
Has thanked: 3 times
Been thanked: 7 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by odrin » Sun Dec 21, 2014 8:55 am

they'll do the same stupid shit they always do. rip models and textures, rip sounds, translate to another language.

what "modding" comes down to these days

muskieratboi
ultra-n00b
Posts: 6
Joined: Sun Jan 01, 2012 10:35 am

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by muskieratboi » Sun Dec 21, 2014 1:58 pm

Actually, My personal idea was to find a decent David Hayter Impersonator and do a Classic Snake Voice Pack..

Or give Arin Hanson a Million dollars for METAL GEAR AWESOME V..

JayK
veteran
Posts: 122
Joined: Fri Jun 01, 2012 10:08 am
Has thanked: 31 times
Been thanked: 65 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by JayK » Sun Dec 21, 2014 2:02 pm

That's just a WMV file
odrin wrote:they'll do the same stupid shit they always do. rip models and textures, rip sounds, translate to another language.

what "modding" comes down to these days


Well I've modded new maps in metal gear online and such, there's a lot that can be done with metal gear games, I do dislike how people assume just because a games on pc now it will be modded, like they don't think of the fact that someone puts effort in to actually reverse the file formats etc.

muskieratboi
ultra-n00b
Posts: 6
Joined: Sun Jan 01, 2012 10:35 am

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by muskieratboi » Sun Dec 21, 2014 6:04 pm

Indeed, Data0 is a renamed WMV file.

Data1 and Data2, However, seem to be encrypted formats:

(From cra0kalo on ZenHAX)

Metal Gear Solid Ground Zeros PC
-------------------------------------
Exe: MgsGroundZeroes.exe
Protection: VMProtect

Data Archives
data_00.g0s
data_01.g0s
data_02.g0s


Texture Extension
.ftex
Assets/tpp/mecha/sbh/Pictures/sbh0_intr2_def_srm.ftex
Assets/tpp/chara/dds/Pictures/dds0_body0_def_srm.ftex
Assets/tpp/chara/dds/Pictures/dds0_body0_def_nrm.ftex

you need to dump the exe to load it in IDA
They may be using blowfish

User avatar
lionheartuk
double-veteran
double-veteran
Posts: 667
Joined: Tue May 16, 2006 10:55 pm
Location: Tokyo, Japan
Has thanked: 20 times
Been thanked: 23 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by lionheartuk » Mon Dec 22, 2014 1:34 pm

odrin wrote:they'll do the same stupid shit they always do. rip models and textures, rip sounds, translate to another language.

what "modding" comes down to these days
And theres something wrong with that?

If a game requires modding to be a good game, then its obviously not a good game in the first place.

Some games suit the modding scene and others don't.

A game like skyrim isn't story centric its gameplay centric, modding improves the gameplay elements, and its built with modding in mind, its easier for people to make entirely new things, more than just textures and models. Other games, like lets say MGSV, are story centric, most people are going to simply translate, swap out audio, maybe a model swap or 2, thats it, not all games improve with mods, and to be honest from my perspective, most of the mods seem pointless anyway.

Theres this whole 'high and mighty' attitude around modding games, I can't stand this, some people mod, some don't, thats all there is to it, if someones such a fantastic modder, go off and actually design original games.
"Lemons are people nice hardworking & honest people too..."

User avatar
chrrox
Moderator
Posts: 2514
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1244 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by chrrox » Mon Dec 22, 2014 2:19 pm

The archive format is easy the file table is at the end and its very easy format.
The file names are hashes.
And the files are encrypted like every other metal gear game so someone will have to reverse it to make a proper extractor.
Also someone will need to dump the file names to match the file name hashes.

Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1638
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 62 times
Been thanked: 817 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Ekey » Mon Dec 22, 2014 11:33 pm

chrrox wrote:The archive format is easy the file table is at the end and its very easy format.
The file names are hashes.
And the files are encrypted like every other metal gear game so someone will have to reverse it to make a proper extractor.
Also someone will need to dump the file names to match the file name hashes.
You can make temporary script for dump encrypted data's? I'll look what I can do with this.

User avatar
chrrox
Moderator
Posts: 2514
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1244 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by chrrox » Tue Dec 23, 2014 2:20 am

it might be a 64bit string instead of 32bit not sure.

Code: Select all

# Metal Gear Solid 5 Ground Zeroes
#Partaial quickbms script by chrrox
get TSIZE asize
math TSIZE - 36
goto TSIZE
print "%TSIZE%"
get arcsize long
getdstring null 0xC
get files long
set tblstart files
math tblstart * 16
math tblstart + 36
get TSIZE asize
math TSIZE - tblstart
goto TSIZE
for i = 0 < files
get CHKSUM long
get HASH long
get offset long
get size long
math offset * 16
string NAME p= "%08X.dat" HASH 
log NAME offset size
next i

Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1638
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 62 times
Been thanked: 817 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Ekey » Tue Dec 23, 2014 10:41 am

Hm strange hashes.

Sergeanur
advanced
Posts: 53
Joined: Fri Dec 30, 2011 12:26 pm
Been thanked: 37 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Sergeanur » Tue Dec 23, 2014 11:17 am

Hash is 64 bit. First two bytes is an extention ID, rest is calculated from name string (without extention if id != 0). Same was in previous MGS games except it was 32 bit and only 1 byte for an extention ID.

The original names of data_01.g0s and data_02.g0s are texture.qar and data.qar respectively. In PS3 version there was no data.qar file, instead files were unpacked and the game was using pathid_list_ps3.bin to match hashes and filenames.
In MgsGroundZeroes.exe I have found a reference to pathid_list_win64_stm.bin and when I created an empty file with that name the game crashed. So I guess the game's still using it and if we find a way to extract data.qar (data_02.g0s) there will be no need for repacking it.

Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1638
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 62 times
Been thanked: 817 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Ekey » Tue Dec 23, 2014 12:00 pm

What a hash algorithm they used for previous game versions? I see CRC64 in this game with ecma tab.

Sergeanur
advanced
Posts: 53
Joined: Fri Dec 30, 2011 12:26 pm
Been thanked: 37 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Sergeanur » Tue Dec 23, 2014 1:35 pm

I have discovered the encryption/decryption method! The tool is coming up shortly.
Ekey wrote:What a hash algorithm they used for previous game versions? I see CRC64 in this game with ecma tab.
I don't know the name of the algorythm (and it probably doesn't have one) but here's the code I have reversed from MGS 3 a long time ago. Same code was used for MGS 2 and MGS 4 as well.

Code: Select all

int CHashMGS::GetIDFromString(char *str)
{
	int hash = 0;
	for (; *str; str++)
	{
		int v1 = hash >> 19;
		int v0 = hash << 5;
		hash = ((v0 | v1) + *str) & 0xFFFFFF;
	}
	if (hash) return hash;
	return 1;
}

JayK
veteran
Posts: 122
Joined: Fri Jun 01, 2012 10:08 am
Has thanked: 31 times
Been thanked: 65 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by JayK » Tue Dec 23, 2014 4:39 pm

Sergeanur wrote: I don't know the name of the algorythm (and it probably doesn't have one) but here's the code I have reversed from MGS 3 a long time ago. Same code was used for MGS 2 and MGS 4 as well.

Code: Select all

int CHashMGS::GetIDFromString(char *str)
{
	int hash = 0;
	for (; *str; str++)
	{
		int v1 = hash >> 19;
		int v0 = hash << 5;
		hash = ((v0 | v1) + *str) & 0xFFFFFF;
	}
	if (hash) return hash;
	return 1;
}
Nice, I was trying to figure this out for MGS4 for quite a while.

Sergeanur
advanced
Posts: 53
Joined: Fri Dec 30, 2011 12:26 pm
Been thanked: 37 times

Re: Metal Gear Solid 5 Ground Zeroes/Phantom Pain g0s archiv

Post by Sergeanur » Tue Dec 23, 2014 6:54 pm

Ok here's the tool.
link

Post Reply