Ripping X DiVE

Doubts, help and support about QuickBMS and other game research tools
TheUltDark
Posts: 9
Joined: Wed Apr 22, 2020 4:56 pm

Ripping X DiVE

Post by TheUltDark »

I don't understand why this is happening on my code I tried develop a script to be able to break X DiVE XOR or at least extract/convert it to a actual unity asset but when I try the file just rename itself all the time and idk what do any help will be really welcome here ;-;

Code: Select all

endian big
idstring "UnityFS\x00"
get archiveSize long
get unknownValue long
get fileCount long
for i = 0 < fileCount
   get pointer long
   get length long
   getdstring name 0x8
   log name pointer length
next i
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Ripping X DiVE

Post by aluigi »

The script is correct but UnityFS is a complex format that cannot be handled in that way.
For Unity take a look at this topic:
viewtopic.php?f=17&t=12
TheUltDark
Posts: 9
Joined: Wed Apr 22, 2020 4:56 pm

Re: Ripping X DiVE

Post by TheUltDark »

aluigi wrote:The script is correct but UnityFS is a complex format that cannot be handled in that way.
For Unity take a look at this topic:
viewtopic.php?f=17&t=12


I saw this post but none of these can help with the XOR problem, I want break this XOR to be able to read those files and which another way I can handle those files besides those ones on this post?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Ripping X DiVE

Post by aluigi »

Do you mean this?
https://www.vg-resource.com/thread-3607 ... #pid658878

If it's just xor why don't you try with the xor tool or a script?

Code: Select all

encryption xor "UnityFS\0\0\0"
get SIZE asize
get NAME filename
log NAME 0 SIZE
TheUltDark
Posts: 9
Joined: Wed Apr 22, 2020 4:56 pm

Re: Ripping X DiVE

Post by TheUltDark »

aluigi wrote:Do you mean this?
https://www.vg-resource.com/thread-3607 ... #pid658878

If it's just xor why don't you try with the xor tool or a script?

Code: Select all

encryption xor "UnityFS\0\0\0"
get SIZE asize
get NAME filename
log NAME 0 SIZE


so this is the main problem most of the sites I tried don't work and those people who have done it don't share the software that they used (and apparently everybody have the same person that created it since they can't share because is from their friend), so this is one solution I found to do it and that eveyone will be able to do too

Code: Select all

encryption xor "UnityFS\0\0\0"
get SIZE asize
get NAME filename
log NAME 0 SIZE
for i = 0 < fileCount
   get pointer long
   get length long
   getdstring name 0x8
   log name pointer length
next i


btw I updated my code but this appearing
Image
zerotaku5
Posts: 10
Joined: Wed Sep 09, 2020 5:01 am

Re: Ripping X DiVE

Post by zerotaku5 »

TheUltDark wrote:
aluigi wrote:Do you mean this?
https://www.vg-resource.com/thread-3607 ... #pid658878

If it's just xor why don't you try with the xor tool or a script?

Code: Select all

encryption xor "UnityFS\0\0\0"
get SIZE asize
get NAME filename
log NAME 0 SIZE


so this is the main problem most of the sites I tried don't work and those people who have done it don't share the software that they used (and apparently everybody have the same person that created it since they can't share because is from their friend), so this is one solution I found to do it and that eveyone will be able to do too

Code: Select all

encryption xor "UnityFS\0\0\0"
get SIZE asize
get NAME filename
log NAME 0 SIZE
for i = 0 < fileCount
   get pointer long
   get length long
   getdstring name 0x8
   log name pointer length
next i


btw I updated my code but this appearing
Image

I hope you can extract since I am also looking for how to do it but I can not find anything.
By the way I'm also looking for the index game and SIFAS do you know if there is also a way to extract them?
Taiwan_Guy
Posts: 4
Joined: Sun Nov 22, 2020 11:02 am

Re: Ripping X DiVE

Post by Taiwan_Guy »

I figured out that it uses 4 keys

Header key for XDIVE UnityFS


55 6E 69 74 79 46 53 00 00 00 (x10)

55 6E 69 74 79 46 53 00 00 (x09)

55 6E 69 74 79 46 53 00 (x08)

55 6E 69 74 79 46 53 (x07)

is there any way to write a script for decrypting the assets with these keys i got from here https://tomeko.net/online_tools/xor.php?lang=en

...cause i used wxhexeditor but it took me a lot of days decrypting the assets with these keys and it can't save the decrypted header with the original file, i had to do it in each file for 4 hrs.
Taiwan_Guy
Posts: 4
Joined: Sun Nov 22, 2020 11:02 am

Re: Ripping X DiVE

Post by Taiwan_Guy »

Okay, scratch that part about the xor keys for android.

The game had a pc/ steam port (and almost 3 assets are not yet completely decrypted using xor while the rest are) so......is there a way to make an Rijndael/ AES decryption bms script that needs this key: cbs4/+-jDAf!?s/#cbs4/+-jDAf!?s/# and this cbc iv key here too: !r19kCsGHTAcr/@ in order to decrypt all the pc assets fully?

P.S: here's how pc does the encryption..
CapCommonAesCrypto.txt


....you know, just at least they change it on pc/ steam every 2 weeks or months,...plus is there a way to make an AES (cbc) decryption that needs the cbc iv key and the key for decrypting these PC/ Steam assets cause a few remaining assets used the aes encryption while the rest were using easy xor encryption that i decrypted fully.
Mysticus
Posts: 182
Joined: Sat Mar 02, 2019 3:24 pm

Re: Ripping X DiVE

Post by Mysticus »

Dunno if anyone still care about this game but...
Is there any decryption script for the mobile global version too?