What's new

Solved How Does XBLMBrowser generate the XCP Links.

J

jasonmbrown

Enthusiast
Messages
106
Reaction score
16
Points
120
Sin$
0
I am not sure If I am allowed to ask this here, I'm probably walking a fine line. If its not ok, -->Please send me a pm<-- and remove the thread.

Anyway on to my question, Basically I have been working on a .net Alternative to the XBLMBrowser By SKFU (posted here). As his program crashes literally non stop for me when browsing indie games. I am currently Trying to add the XCP Link Generation that XBLMBrowser has, However I can't get a-hold of SKFU to ask how they do it. I tried to figure out the algorithm through guess work but without any luck. Heres an example of what it generates:

b2080e9f-ff47-40fe-802d-a382bd55edfc <- This is the Product Instance ID Which appears to be the same as the File name minus the "-" and with the 3rd and 4th sequence being modified (first byte of 3rd sequence and first byte of 4th sequence are removed?)
3rd sequence 1st Byte = 3rd sequence 2nd Byte.
3rd sequence 2nd Byte = 4th sequence 2nd byte

Which results in this "b2080e9f-ff47-fe2d-a382bd55edfc"


Then I believe something is done to it, which gives "a2152078aebd" <------- This is What I don't know how to obtain.
(Im guessing that the 2 bytes that got shifted are simple encryption keys? used to generate "a2152078aebd")

And finally "a2152078aebd" is appended to "b2080e9f-ff47-fe2d-a382bd55edfca2152078aebd", the '-' are removed and finally ".xcp" is added to the end resulting in the last part of the Download URL, Which is the following:
"b2080e9fff47fe2da382bd55edfca2152078aebd.xcp"

Now I have no Idea what the algorithm to generate "a2152078aebd" actually is, I spent a few hours trying to do guess work to the entire sequence (after converting each byte to a value and performing random equations on it) But I have nothing Concrete. So If anyone knows how any of that works I'd appreciate it so I can continue working on "XBLMarketplace For PC".
 
Last edited:
Dwack

Dwack

Now employed at Dominoes!
Experienced Veteran Hardened Veteran
Messages
4,551
Reaction score
2,949
Points
685
Sin$
0
When you request the XML data for your title you get back all kinds of information. They info you are looking for is called the contentId. When you get that you convert it from Base64 to a byte string. that resulting string is your XCP name.

example .. game Darkest of Days
sample of XML response
d6d0912e4435beab3c9b95de66711b20.png

you can see at the bottom the contentId I was talking about. When you Base64 decode that you get:
75650ac9640f5c9a28bdbfacdcd6dc1c3fe3abf6
 
J

jasonmbrown

Enthusiast
Messages
106
Reaction score
16
Points
120
Sin$
0
Omg Thank you! I have been looking for that information for a while. and ya I figure out the TitleID part I just needed to determine that last little bit of the filename.

I will add that into my program in the next few minutes and update it =D. After that, I will probably add in the displaying of some of the extra info that I didnt display.
 
Dwack

Dwack

Now employed at Dominoes!
Experienced Veteran Hardened Veteran
Messages
4,551
Reaction score
2,949
Points
685
Sin$
0
Omg Thank you! I have been looking for that information for a while. and ya I figure out the TitleID part I just needed to determine that last little bit of the filename.

I will add that into my program in the next few minutes and update it =D. After that, I will probably add in the displaying of some of the extra info that I didnt display.
No prob
Keep in mind each game has multiple contentIds. For DLCs and demos etc.
 
J

jasonmbrown

Enthusiast
Messages
106
Reaction score
16
Points
120
Sin$
0
ah Dangit... Whats the method of determining the type? is it the tier? I don't have an xbox 360 on hand to look into it... otherwise i would heh...

Ive also been trying to figure out the query's fully... but Ive had to base everything off SKFU's browser, so I very well could be doing it in an outdated fashion :smile:.
 
Last edited:
Dwack

Dwack

Now employed at Dominoes!
Experienced Veteran Hardened Veteran
Messages
4,551
Reaction score
2,949
Points
685
Sin$
0
ah Dangit... Whats the method of determining the type? is it the tier? I don't have an xbox 360 on hand to look into it... otherwise i would heh...

Ive also been trying to figure out the querys... but Ive had to base everything off SKFU's browser, so I very well could be using outdate methods.
Just make a loop and keep reading the XML data, pulling out the info from each asset(dlc, avatar, demo etc) you want.
As you can see in the pic there are more then one 'item'. Each item is a different asset that will have a name, description, contentId etc etc
 
J

jasonmbrown

Enthusiast
Messages
106
Reaction score
16
Points
120
Sin$
0
Ah, Ok. Thanks again =). well due to my query method I already get the name desc images and game capabilities. Don't get the contentID with the base query though. So I have to re-query for that information, Il have to look into a workaround for that later so Im not spamming the servers with requests.

Honestly I tried a base64 Decode on that string using online tools, But they all responded with string and not bytes, Or Malformed input errors, Which made me think contentID was useless. (I manage to test it in a Base64 to byte converter though which gave me the expected output, had I done that from the get go I wouldn't have had such a hassle).

Btw Dwack do you have any Idea what causes SKFU's browser to crash when attempting to get links for a large portion of the Indie Games section? I would like to avoid whatever was wrong.
 
Last edited:
Top Bottom
Login
Register