mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-11-14 07:42:42 -05:00
Add support for bundles with obfuscated unity version
This commit is contained in:
@ -83,7 +83,10 @@ namespace AssetStudio
|
|||||||
m_Header.signature = reader.ReadStringToNull();
|
m_Header.signature = reader.ReadStringToNull();
|
||||||
m_Header.version = reader.ReadUInt32();
|
m_Header.version = reader.ReadUInt32();
|
||||||
m_Header.unityVersion = reader.ReadStringToNull();
|
m_Header.unityVersion = reader.ReadStringToNull();
|
||||||
m_Header.unityRevision = new UnityVersion(reader.ReadStringToNull());
|
var revStr = reader.ReadStringToNull();
|
||||||
|
if (!UnityVersion.TryParse(revStr, out m_Header.unityRevision))
|
||||||
|
m_Header.unityRevision = new UnityVersion();
|
||||||
|
|
||||||
switch (m_Header.signature)
|
switch (m_Header.signature)
|
||||||
{
|
{
|
||||||
case "UnityArchive":
|
case "UnityArchive":
|
||||||
|
|||||||
@ -70,15 +70,13 @@ namespace AssetStudio
|
|||||||
if (header.m_Version >= SerializedFileFormatVersion.Unknown_7)
|
if (header.m_Version >= SerializedFileFormatVersion.Unknown_7)
|
||||||
{
|
{
|
||||||
var versionPos = reader.Position;
|
var versionPos = reader.Position;
|
||||||
try
|
|
||||||
{
|
var verStr = reader.ReadStringToNull();
|
||||||
version = new UnityVersion(reader.ReadStringToNull());
|
if (!UnityVersion.TryParse(verStr, out version))
|
||||||
}
|
|
||||||
catch (NotSupportedException e)
|
|
||||||
{
|
{
|
||||||
if (assetsManager.SpecifyUnityVersion == null)
|
if (assetsManager.SpecifyUnityVersion == null)
|
||||||
{
|
{
|
||||||
Logger.Warning(e.Message);
|
Logger.Warning($"Failed to parse Unity version: \"{verStr}\"");
|
||||||
version = new UnityVersion();
|
version = new UnityVersion();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,6 +66,20 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool TryParse(string versionStr, out UnityVersion version)
|
||||||
|
{
|
||||||
|
version = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
version = new UnityVersion(versionStr);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region UnityVer, UnityVer
|
#region UnityVer, UnityVer
|
||||||
public static bool operator ==(UnityVersion left, UnityVersion right)
|
public static bool operator ==(UnityVersion left, UnityVersion right)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user