in net/JetBrains.FormatRipper/src/Dmg/DmgFile.cs [39:67]
public static unsafe bool Is(Stream stream)
{
if (stream.Length < sizeof(UDIF))
return false;
stream.Seek(-sizeof(UDIF), SeekOrigin.End);
UDIF udif;
StreamUtil.ReadBytes(stream, (byte*)&udif, sizeof(UDIF));
if ((DmgMagic)MemoryUtil.GetBeU4(udif.Magic) != DmgMagic.KOLY)
return false;
if (MemoryUtil.GetBeU4(udif.HeaderSize) != sizeof(UDIF))
return false;
ulong streamLength = checked((ulong)stream.Length);
if (udif.PlistOffset == 0 || udif.PlistLength == 0)
return false;
if (MemoryUtil.GetBeU8(udif.PlistOffset) + MemoryUtil.GetBeU8(udif.PlistLength) > streamLength)
return false;
if (MemoryUtil.GetBeU8(udif.CodeSignatureOffset) + MemoryUtil.GetBeU8(udif.CodeSignatureLength) > streamLength)
return false;
return true;
}