mirror of
https://github.com/horsicq/Detect-It-Easy.git
synced 2026-06-24 01:54:08 +00:00
Renamed and moved numerous .sg files in the db directory to follow a more consistent naming convention and directory structure, grouping by type (e.g., compiler, cruncher, packer, protector, etc.). This improves maintainability and clarity of the signature database organization.
74 lines
No EOL
2.9 KiB
JavaScript
74 lines
No EOL
2.9 KiB
JavaScript
// Detect It Easy: detection rule file
|
|
// Author: LinXP
|
|
|
|
meta("archive", "Unity");
|
|
|
|
function detect() {
|
|
var nFileVer, sEngineVer, sMinPlayerVer
|
|
if (Binary.getSize() >= 0x07) {
|
|
if (Binary.compare("'UnityFS'00")) {
|
|
sName += "/UnityFS";
|
|
nFileVer = Binary.read_uint32(0x8, _BE);
|
|
sEngineVer = Binary.getString(0x12);
|
|
sMinPlayerVer = Binary.getString(0x0C);
|
|
if (sEngineVer && sMinPlayerVer) {
|
|
sVersion = sVersion.append("FileVer:" + nFileVer);
|
|
sVersion = sVersion.append("EngineVer:" + sEngineVer);
|
|
sVersion = sVersion.append("MinPlayerVer:" + sMinPlayerVer);
|
|
bDetected = true;
|
|
}
|
|
} else if (Binary.compare("'UnityRaw'00")) {
|
|
sName += "/UnityRaw";
|
|
nFileVer = Binary.read_uint32(0x9, _BE);
|
|
sEngineVer = Binary.getString(0x13);
|
|
sMinPlayerVer = Binary.getString(0x0D);
|
|
if (sEngineVer && sMinPlayerVer) {
|
|
sVersion = sVersion.append("FileVer:" + nFileVer);
|
|
sVersion = sVersion.append("EngineVer:" + sEngineVer);
|
|
sVersion = sVersion.append("MinPlayerVer:" + sMinPlayerVer);
|
|
bDetected = true;
|
|
}
|
|
} else if (Binary.compare("'UnityWeb'00")) {
|
|
sName += "/UnityWeb";
|
|
nFileVer = Binary.read_uint32(0x9, _BE);
|
|
sEngineVer = Binary.getString(0x13);
|
|
sMinPlayerVer = Binary.getString(0x0D);
|
|
if (sEngineVer && sMinPlayerVer) {
|
|
sVersion = sVersion.append("FileVer:" + nFileVer);
|
|
sVersion = sVersion.append("EngineVer:" + sEngineVer);
|
|
sVersion = sVersion.append("MinPlayerVer:" + sMinPlayerVer);
|
|
bDetected = true;
|
|
}
|
|
} else if (Binary.read_uint32(0x10, _BE) == 0) {
|
|
sName += "/Unity Asset";
|
|
nFileVer = Binary.read_uint32(0x8, _BE);
|
|
switch (nFileVer) {
|
|
case 9:
|
|
sEngineVer = Binary.getString(0x14);
|
|
break;
|
|
case 15:
|
|
sEngineVer = Binary.getString(0x14);
|
|
break;
|
|
case 17:
|
|
sEngineVer = Binary.getString(0x14);
|
|
break;
|
|
case 20:
|
|
sEngineVer = Binary.getString(0x14);
|
|
break;
|
|
case 21:
|
|
sEngineVer = Binary.getString(0x14);
|
|
break;
|
|
case 22:
|
|
sEngineVer = Binary.getString(0x30);
|
|
break;
|
|
}
|
|
if (sEngineVer && nFileVer <= 22 && nFileVer >= 8) {
|
|
sVersion = sVersion.append("FileVer:" + nFileVer);
|
|
sVersion = sVersion.append("EngineVer:" + sEngineVer);
|
|
bDetected = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return result();
|
|
} |