Skip to content

Commit cc41c4d

Browse files
dv1x3rK0lb3
authored andcommitted
Handle UnityWeb version 6
1 parent 2e8a79c commit cc41c4d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

UnityPy/files/BundleFile.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ def __init__(
4141
if signature == "UnityArchive":
4242
raise NotImplementedError("BundleFile - UnityArchive")
4343
elif signature in ["UnityWeb", "UnityRaw"]:
44-
m_DirectoryInfo, blocksReader = self.read_web_raw(reader)
44+
if self.version == 6:
45+
m_DirectoryInfo, blocksReader = self.read_fs(reader)
46+
else:
47+
m_DirectoryInfo, blocksReader = self.read_web_raw(reader)
4548
elif signature == "UnityFS":
4649
m_DirectoryInfo, blocksReader = self.read_fs(reader)
4750
else:
@@ -98,6 +101,10 @@ def read_fs(self, reader: EndianBinaryReader):
98101
uncompressedSize = reader.read_u_int()
99102
dataflagsValue = reader.read_u_int()
100103

104+
# UnityWeb version 6
105+
if self.signature != "UnityFS":
106+
reader.read_byte()
107+
101108
version = self.parse_version()
102109
# https://issuetracker.unity3d.com/issues/files-within-assetbundles-do-not-start-on-aligned-boundaries-breaking-patching-on-nintendo-switch
103110
# Unity CN introduced encryption before the alignment fix was introduced.

0 commit comments

Comments
 (0)