

Joined: Fri Apr 07, 2017 10:11 pm

Posts: 5

warrantyvoider wrote:







EDIT1:



Yay, I can load entire bundles in my VFS and display them! now I need to find one that uses encryption...







EDIT2:



now I can also decrypt the data on the fly and display it too, this is one of these "embargoed" items... (data\win32\loctext\en.toc -> .../tl_dlc -> load only res in bundle)

so now it automatically: decrypts, decompresses and puts all the pieces back together!







EDIT3: attached my current version; added an option to clear the VFS without restart; if you click on the top node in the structure view of a bundle and press F1 (shortcut for loading stuff), it will load the entire bundle into VFS. same goes for all ebx/res/chunk if you click a node named like that and single import if you pick one of its children nodes



PS: also thanks to everyone that contributed code and information so far, you will be added to the credits later, definitly! back home and back coding^^ started by making initFS browseable tooEDIT1:Yay, I can load entire bundles in my VFS and display them! now I need to find one that uses encryption...EDIT2:now I can also decrypt the data on the fly and display it too, this is one of these "embargoed" items... (data\win32\loctext\en.toc -> .../tl_dlc -> load only res in bundle)so now it automatically: decrypts, decompresses and puts all the pieces back together!EDIT3: attached my current version; added an option to clear the VFS without restart; if you click on the top node in the structure view of a bundle and press F1 (shortcut for loading stuff), it will load the entire bundle into VFS. same goes for all ebx/res/chunk if you click a node named like that and single import if you pick one of its children nodesPS: also thanks to everyone that contributed code and information so far, you will be added to the credits later, definitly!



I'm writting my own tool with C++, using you algo. While debugging, i see, you are not correctly parsing .toc files. You suggest that types 0x82, 0x87 is completly different, but it's not true.



I found some information

Flag 4 means that we need to skeep reading null terminated name for this field. Also, requiredChunks after that parses as list of 0x0F types (0x8F with flag).





Sample from my json dump



Code: {

"alwaysInstalled": false,

"estimatedSize": 871620188,

"friendlyName": 0,

"id": "��\u0012Ɵ\u0019�%8��#�CTu",

"installBundle": "Win32/streaminginstall/ayainstallpackage",

"license": "",

"mandatoryDLC": false,

"maxSizeMB": -1,

"name": "streaminginstall/ayainstallpackage",

"optionalDLC": false,

"requiredChunks": [

"7�\t���\r��r��wڲ�",

"?���\u0012C;�ڞ\\����\u0006",

"GBWT+� �m\u0015���½L",

"n��5؁����\"��\u001b�S",

"n��5؁����;��\u001b�S",

"n��5؁����7��\u001b�S",

"q��(I�T���[㨍�[",

"q��(I�T���[����[",

"q��(I�T���[����[",

"u����bu[\u001f�%���� ",

"u����bu[\u001f�%���� ",

"u����bu[\u001f�%���� ",

"�\u0002��\u0012C���\u0012qX��d\u0010",

"��f\u0001d���Q��",

"��f\u0001d���Q��\u0001`�J\u0010",

"��f\u0001d���Q��\u001fu�J\u0010",

"ʗ��v6�8��}aFl�C",

"��S�m?r\u001b����Z�2X",

"��S�t?r\u001b����Z�2X",

"��S�x?r\u001b����Z�2X"

],

"saveLocked": true,

"superbundles": [

"Win32/game/levels/hubs/hub_aya_unc/hub_aya_unc_level",

"Win32/game/levels/crit/crit_vlt/crit_vlt",

"Win32/game/levels/hubs/hub_aya/hub_aya_level"

],

"testDLC": false

}



p.s. thanks to weiyun for decrypt code. I'm writting my own tool with C++, using you algo. While debugging, i see, you are not correctly parsing .toc files. You suggest that types 0x82, 0x87 is completly different, but it's not true.I found some information here . Type splits into flags and typecode. 0x82 - Flag = 0x4 Type=0x2Flag 4 means that we need to skeep reading null terminated name for this field. Also, requiredChunks after that parses as list of 0x0F types (0x8F with flag).Sample from my json dumpp.s. thanks to weiyun for decrypt code.



