What's new

What's so special about the XVDs?

  • Thread starter notHALT
  • Start date
  • Views 13,317
N

notHALT

Enthusiast
Messages
36
Reaction score
113
Points
100
Sin$
7
As many of you know, the recent leak was covered and a little talk was made about this new format. Some of it being misinformed.

Anyway, the XVD's / XVC's are a modification of the Virtual Hard Disk format but it's used very, very, similar to the Windows 8 and 8.1 packaging system ".appx". The difference? .APPX are just Zip files. The layout of the application (game) is also the exact same. If you have the SDK, you will notice this file: http://prntscr.com/5n0nfm

So wait, why would a file do anything or help us?
We're not the sort of people to tell you but they are used to update the consoles OS and used to store applications and updates. Possibly save games, for local storage.

Ok, we get what you mean but can you elaborate a little more?
Again, our information will be off but we are rushing this. But it's still accurate.
The XVD's are optionally signed and crypted, the documentation explains this in the Xbox One: Deployment section.

Lets put it this way:
If we could possibly decrypt, read or mount these type of files, then we can get an insight on the Xbox Ones OS.

Additional information:
fcrebZb.png


The XVD's are referenced or referred to "Sparse Files" - Read More
The XVD's (Packages) also use Symbolic Links.

That's a reasonable way that we see it. It would make sense. But then again, we are in no position to verify.
 
Last edited:
DArK x1337HaX

DArK x1337HaX

4D 79 20 4E 61 6D 65 20 49 73 20 44 61 6E
Stickied Programmer Fabled Veteran
Messages
2,914
Reaction score
1,178
Points
595
Sin$
0
Thanks for this. I might start looking into this a bit. Just downloaded the SDK and Docs.
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
As many of you know, the recent leak was covered and a little talk was made about this new format. Some of it being misinformed.

Anyway, the XVD's / XVC's are a modification of the Virtual Hard Disk format but it's used very, very, similar to the Windows 8 and 8.1 packaging system ".appx". The difference? .APPX are just Zip files. The layout of the application (game) is also the exact same. If you have the SDK, you will notice this file: http://prntscr.com/5n0nfm

So wait, why would a file do anything or help us?
We're not the sort of people to tell you but they are used to update the consoles OS and used to store applications and updates. Possibly save games, for local storage.

Ok, we get what you mean but can you elaborate a little more?
Again, our information will be off but we are rushing this. But it's still accurate.
The XVD's are optionally signed and crypted, the documentation explains this in the Xbox One: Deployment section.

Lets put it this way:
If we could possibly decrypt, read or mount these type of files, then we can get an insight on the Xbox Ones OS.

Additional information:
fcrebZb.png


The XVD's are referenced or referred to "Sparse Files" - Read More
The XVD's (Packages) also use Symbolic Links.

That's a reasonable way that we see it. It would make sense. But then again, we are in no position to verify.
You can decrypt them via the "xvdsign.exe". I'll be looking into that particular executable along with others.
 
A

avchdman

Newbie
Messages
6
Reaction score
0
Points
35
Sin$
0
only way to decrypt retail stuff is to have the key.

how to get the key? gotta get through the exclusive partition out to the hypervisor. easy stuff :biggrin:
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
For XVD/XVC files, the top portion of the file has blocks of 0x4000 in length. The first block is the header. The blocks after that have a null padding of 0x12, though they are still 0x4000 in size.

Here's a C header file that can be used to parse the XSAPI library. It can be added on to. Didn't reverse the parameters because it's near impossible to get all of them right. They seem to use the same memory allocation of the Xbox 360(0x80000000+). It might not run correct if compiled on a 32-bit machine, or ran as if it was an x86 architecture.


Can be used as so:
C:
#include <stdio.h>
#include <stdlib.h>
#include "xsapi.h"

int retVal;
int main()
{
    printf("Welcome. Attempting to peirce XSAPI...\r\n");
    init_xsapi();
    retVal = XvdOpenAdapter();
    printf("0x%X\r\n", retVal);
    getchar();
    getchar();
}
 
Doom

Doom

Enthusiast
Messages
177
Reaction score
52
Points
85
Sin$
0
xvdsign cannot be used to decrypt XVD's.

You also need the retail AES256 key used to decrypt the unique AES128 keys generated and stored per XVD if you want any hope of decrypting retail games/updates/etc.

-Doom
 
Network Auditor

Network Auditor

Enthusiast
Messages
121
Reaction score
31
Points
110
Sin$
0
Glad to see there's people here capable of what you all are doing. I'm an amateur, but I'll certainly be looking into this with all my brain power. I'll report here if I see anything interesting.
 
RexxiTu8

RexxiTu8

Seasoned Member
Messages
3,093
Reaction score
1,146
Points
550
Sin$
7
Thanks for the share, see what we can do/find I guess :smile:
 
XBLToothPik

XBLToothPik

Contributor
Programmer Modder Frame In Gold
Messages
577
Reaction score
1,068
Points
350
Sin$
7
For XVD/XVC files, the top portion of the file has blocks of 0x4000 in length. The first block is the header. The blocks after that have a null padding of 0x12, though they are still 0x4000 in size.

Here's a C header file that can be used to parse the XSAPI library. It can be added on to. Didn't reverse the parameters because it's near impossible to get all of them right. They seem to use the same memory allocation of the Xbox 360(0x80000000+). It might not run correct if compiled on a 32-bit machine, or ran as if it was an x86 architecture.


Can be used as so:
C:
#include <stdio.h>
#include <stdlib.h>
#include "xsapi.h"

int retVal;
int main()
{
    printf("Welcome. Attempting to peirce XSAPI...\r\n");
    init_xsapi();
    retVal = XvdOpenAdapter();
    printf("0x%X\r\n", retVal);
    getchar();
    getchar();
}


Nice! This made me want to make a wrapper for it in C#. Unfortunately, when using LoadLibrary with the xsapi.dll from the SDK, the Marshal.GetLastWin32Error() returns a 203 error. Could not fix. So I wrote a .DLL in native C++ that returns the addresses to the functions in the xsapi.dll that I call through with C#. It's HANDLECEPTION...But it works. Working on adding more to it. But it's nice to do it from C#.

Example Program:
af07b8a362e315afce7264fe13ec4303.png

Result: (Updated to XvdMount)
4f3347cd29038db7ce034d2b8c2942bf.png
 
Last edited:
J

Jan4Vmods

Newbie
Messages
17
Reaction score
6
Points
45
Sin$
0
Hi, can you send me that C# frontend? Can you please also send the source? thanks.
 
M

MilosziK

Newbie
Messages
1
Reaction score
0
Points
10
Sin$
0
Hello. I am also looking for C# frontend. It would be very nice if you could send to me.
 
Top Bottom
Login
Register