Jump to content


Photo

Downloadable Content Checksums


  • Please log in to reply
32 replies to this topic

#1 MrFish

MrFish

    X-S X-perience

  • Members
  • PipPip
  • 369 posts
  • Xbox Version:v1.1
  • 360 version:v1 (xenon)

Posted 07 August 2004 - 01:37 PM

I think I've made some progress with PGR2's verification of downloaded content:


A brief recap of PGR2 (and just about every other XBox Live game)'s DLC verification:

For each directory, PGR2 loads contentmeta.xbx, and checks its signature. The signature algorithm produces hashes unique to each XBox, by using a unique number in the EEPROM as a salt.

If the signature checks out, PGR2 goes through each file listed in contentmeta.xbx, and checks to see that the file hash matches the hash stored in contentmeta.xbx. If it does, it loads the file. If not, it ignores the content(?). Again, these file signatures are salted with data from the XBox's EEPROM, and thus are specific to each XBox.


Now the progress:

Disassempling PGR2's default.xbe, I think I've found the bit of the XBE that performs the verification of the DLC files (For those of you following along at home, I used IDA's pcf and sigmake to create a FLIRT file from xapilib.lib , and then traced backwards from XCalculateContentSignature to find the signature check.). Changing the byte sequence f3 a6 74 2d 8b 44 24 10 50 e8 to f3 a6 /eb/ 2d 8b 44 24 10 50 e8 would appear to bypass this check, allowing one to modify files in DLC and still have gotham load it. This does not bypass the check of the contentmeta.xbx signature, and thus does not allow DLC to be transferred between XBoxes. This check may be much harder to find, as it is part of the statically-linked xdk library.


Now, the problem:

I don't have Xbox Live, and have no way to try this. It would be very nice if somebody with Xbox Live and some PGR2 content installed could try this hack, and let me know if I'm on the right track. It should allow for the modification of files in an already installed DLC (car ini files would seem like an easy choice). Make sure to back up your DLC before doing this, as modifying even a single byte will make it fail the signature, and thus be incompatible with Live.

#2 DOS4GW

DOS4GW

    The XLink Fraggle

  • Moderator
  • PipPipPipPipPip
  • 1,432 posts
  • Location:#XLink @ Efnet
  • Interests:Pet my Xbox
  • Xbox Version:v1.1

Posted 07 August 2004 - 05:17 PM

It allready allows changes in installed files, it has allways done that. And the thing about ini files doesn't make any sense, pgr2 reads the plain text from them, it never calculated the checksum.

The problem are rendering in the sky.

It doesn't skip anything, it loads everything.

Edited by DOS4GW, 07 August 2004 - 08:06 PM.


#3 MrFish

MrFish

    X-S X-perience

  • Members
  • PipPip
  • 369 posts
  • Xbox Version:v1.1
  • 360 version:v1 (xenon)

Posted 07 August 2004 - 05:45 PM

You're saying that if you edit an ini file in e:\tdata , for instance E:/TDATA/4d53004b/$u/dcontentcar5.ini , an unpatched gotham will still load the paris pack correctly? It won't complain that the pack is damaged, or absent?

As I understand the XDK documentation, an XBox Live title must perform validation on downloadable content to be certified : if the user could modify the downloaded content on the hard disk, he could potentially cheat on Live. It doesn't have to perform validation on its own content, as it is impossible to modify it on an unmodified XBox (and, of course, modified XBoxen are banned from Live).

Some games, DOAX for example, perform validation on their data files anyway, in order to hinder modification even on a modded XBox. To my knowledge PGR2 does not do this, but it /does/ validate XBox Live Downloadable Content, which is why you can't simply copy the Paris pack from one XBox to another. Is my understanding of this incorrect?

#4 DOS4GW

DOS4GW

    The XLink Fraggle

  • Moderator
  • PipPipPipPipPip
  • 1,432 posts
  • Location:#XLink @ Efnet
  • Interests:Pet my Xbox
  • Xbox Version:v1.1

Posted 07 August 2004 - 08:13 PM

Loading from tdata i'm not shure about, but anyway the problem about the pgr2 content is not to get the files to their right location.

The content has a new updated default.xbe. Every time you start the game from dvd it will look for a newer xbe on the hdd. But if you copy the content with the new default.xbe to their right locations and start the game from the dvd it will say the disc is dirty. If you start it without the updated xbe and launch a content track as paris or long beach, the game will freeze your xbox the moment you hit A to start driving, due to fubar render. The new xbe contains the update fixing this render issue, so all needed is making it able to load this new file, or change the original.

Edited by DOS4GW, 07 August 2004 - 08:55 PM.


#5 MrFish

MrFish

    X-S X-perience

  • Members
  • PipPip
  • 369 posts
  • Xbox Version:v1.1
  • 360 version:v1 (xenon)

Posted 08 August 2004 - 12:55 AM

More progress:

changing the string c0 f3 a7 74 04 6a 05 eb af to c0 f3 a7 /eb/ 04 6a 05 eb af disables the header check on contentmeta.xbx . With this modification, PGR2 will attempt to verify downloadable content from another xbox. (Without it, it ignores foreign content completely).

On mine, however, even with both modifications (done to both XBEs), content verification fails, and gotham offers to delete the damaged content 'The auto-update is damaged - press a to delete the damaged content and restart your xbox'.

Either :

a) I've messed up, and there's yet another content verification check
b) I've messed up, and I haven't correctly disabled the content verification check
c) My copy of gotham / paris pack is messed up in some way

While it's most-likely a or b, I'd appreciate it if someone else with (preferably a clean copy of) PGR2 and the paris pack from another Xbox could try these two hex edits, and report their results.

I'd also appreciate it if someone with the paris pack locked to their xbox could try (having first made a backup!) applying this hexedit and modifying a contentmeta.xbx and/or applying the other hexedit and modifying a car.ini , and report if anything odd happens. Also, it would help a lot if you could try applying these patches to the default.xbe in the content pack as well.

My hypothesis is that once all the verification checks have been punched out, PGR2 will load another XBox's version of a content pack just as if it had downloaded it itself: no pink sky, no dirty disk. I hope :)

#6 DOS4GW

DOS4GW

    The XLink Fraggle

  • Moderator
  • PipPipPipPipPip
  • 1,432 posts
  • Location:#XLink @ Efnet
  • Interests:Pet my Xbox
  • Xbox Version:v1.1

Posted 08 August 2004 - 02:25 AM

Did you make that eeprom?

The content is right here, backedup before extracted, its virgin, untrouched. However none of the hexstrings you provided are to be found in either my new or old default.xbe. Dubble checked on two xboxes.

If you're able, I would like to talk this over with you on irc, efnet. My nick is the same.

Edited by DOS4GW, 08 August 2004 - 02:32 AM.


#7 CompuTerror

CompuTerror

    X-S Enthusiast

  • Members
  • 6 posts

Posted 22 August 2004 - 07:25 PM

I've tried to patch the default.xbe both ways, but no way works

#8 SniperKilla

SniperKilla

    X-S Freak

  • Members
  • PipPipPipPipPip
  • 1,519 posts
  • Location:Pittsburgh, PA
  • Xbox Version:v1.0
  • 360 version:v4.0 (jasper)

Posted 23 August 2004 - 12:54 PM

lets get this hash cracked.. so i can use a silver radical on live

#9 DOS4GW

DOS4GW

    The XLink Fraggle

  • Moderator
  • PipPipPipPipPip
  • 1,432 posts
  • Location:#XLink @ Efnet
  • Interests:Pet my Xbox
  • Xbox Version:v1.1

Posted 23 August 2004 - 04:25 PM

You have Live sniper, can you provide a file location index, detailed one? With size, date, etc..

I would be gratefull if you started pgr2, and raced a live car on a paris track, then made a index of e: f: and x: and y:

Edited by DOS4GW, 23 August 2004 - 04:33 PM.


#10 NarutoKun

NarutoKun

    X-S Senior Member

  • Members
  • PipPip
  • 166 posts
  • Location:BC, Canada
  • Interests:Fucking your sister, putting a fist up to your dad.
  • Xbox Version:v1.0
  • 360 version:v1 (xenon)

Posted 11 January 2005 - 09:46 PM

THX MrFish it works great for Halo 2!

#11 Rooble

Rooble

    X-S Enthusiast

  • Members
  • 27 posts

Posted 17 January 2005 - 06:45 AM

Ok, this all sounds great and all, but i guess im missing something? If you have to edit the default.xbe (which i think you do) then obviously this cant be used on live? correct? but then saying that, this is complety useless because you can already edit the cars if you dont intend to go on live? so what exactly am i missing? do you edit some .xbe on the TDATA section? Ive not thoroughly scanned through the DLC content in TDATA, but i dont really remember seeing a .xbe... any input from now would be cool...

#12 knatsch

knatsch

    X-S Enthusiast

  • Members
  • 16 posts

Posted 18 January 2005 - 11:57 AM

MrFish is trying to get content running on a box with no live account. When starting such a game it checks by several signatures if the content was originally installed on this xbox. If this is not the case, the content does not start.
When he achieves to remove these checks, the content would run.

And then of course you cannot cheat on xbl, because the default.xbe would not start any more when the modchip is off.

#13 jsrlepage

jsrlepage

    X-S Senior Member

  • Members
  • PipPip
  • 201 posts
  • Xbox Version:v1.2
  • 360 version:v1 (xenon)

Posted 19 January 2005 - 12:19 AM

Success Report

Games : Ultramix and Ultramix2

Patch : Enhanced version still in testing - thanks to the Fish.

Files : ...hold yer horses... Ultramix/2 Downloadable Content Song Pack 1. ...i'd need to test the others... but sadly i don't have them... :-(

first one works. anyone got the others?

#14 Ichijoe

Ichijoe

    X-S X-perience

  • Members
  • PipPip
  • 334 posts

Posted 26 January 2005 - 01:40 AM

You must be doing something right MrFish! I found and replaced the HEX in my F:\PG2 and the one in E:\TDATA too. allthough the Render Bug is still there and causes PG2 to crash. It now takes about a minute instead of the second One presses the 'A' button as before!!!

#15 Agret

Agret

    X-S Enthusiast

  • Members
  • 27 posts
  • Location:Melbourne, Victoria, Australia
  • Xbox Version:v1.0
  • 360 version:unknown

Posted 03 February 2005 - 01:43 PM

Hey guys how do you apply this to games other than PGR2? I want to use it on the Ninja Gaiden Hurricane pack




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users