Skip to content

Commit 95e5992

Browse files
committed
1.6.3 - ImportHelper - check_file_type serialized fix
1 parent a88445a commit 95e5992

2 files changed

Lines changed: 16 additions & 31 deletions

File tree

UnityPy/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "1.6.2"
1+
__version__ = "1.6.3"
22

33
from .environment import Environment
44

UnityPy/helpers/ImportHelper.py

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ def check_file_type(input_) -> (FileType, EndianBinaryReader):
116116

117117
# check if AssetsFile
118118
old_endian = reader.endian
119-
assets_file = True
120119
# read as if assetsfile and check version
121120
# ReadHeader
122121
reader.Position = 0
@@ -125,43 +124,29 @@ def check_file_type(input_) -> (FileType, EndianBinaryReader):
125124
version = reader.read_u_int()
126125
data_offset = reader.read_u_int()
127126

128-
if version >= 9:
127+
if version >= 22:
129128
endian = ">" if reader.read_boolean() else "<"
130129
reserved = reader.read_bytes(3)
131-
else:
132-
reader.Position = file_size - metadata_size
133-
endian = ">" if reader.read_boolean() else "<"
134-
135-
if version >= 22:
136130
metadata_size = reader.read_u_int()
137131
file_size = reader.read_long()
138132
data_offset = reader.read_long()
139133
unknown = reader.read_long() # unknown
140134

141-
reader.endian = endian
142-
143-
if (
144-
version < 0
145-
or version > 100
146-
or any(
147-
[
148-
x < 0 or x > reader.Length
149-
for x in [file_size, metadata_size, version, data_offset]
150-
]
151-
)
152-
or file_size < metadata_size
153-
):
154-
return FileType.ResourceFile, reader
155135

156-
if version >= 7:
157-
unity_version = reader.read_string_to_null()
158-
if len([x for x in re.split(r"\D", unity_version) if x != ""]) < 2:
159-
assets_file = False
160-
161-
# check end
136+
# reset
162137
reader.endian = old_endian
163138
reader.Position = 0
164-
if assets_file:
165-
return FileType.AssetsFile, reader
166-
else:
139+
# check info
140+
if any((
141+
version < 0,
142+
version > 100,
143+
*[
144+
x < 0 or x > reader.Length
145+
for x in [file_size, metadata_size, version, data_offset]
146+
],
147+
file_size < metadata_size,
148+
file_size < data_offset
149+
)):
167150
return FileType.ResourceFile, reader
151+
else:
152+
return FileType.AssetsFile, reader

0 commit comments

Comments
 (0)