mirror of
https://github.com/horsicq/Detect-It-Easy.git
synced 2026-06-24 01:54:08 +00:00
Added a standard header comment to all db framework and detection rule files, indicating they are part of the Detect It Easy (DiE-JS) framework and warning against unauthorized changes. This improves consistency and clarifies file purpose for maintainers.
83 lines
No EOL
2.8 KiB
Text
83 lines
No EOL
2.8 KiB
Text
// Detect It Easy: DiE-JS framework file
|
|
// Don't change anything unless you're sure about what you're doing
|
|
|
|
// Detect an ARJ archive.
|
|
// Info from http://www.fileformat.info/format/arj/corion.htm
|
|
includeScript("archive-file");
|
|
sName = "ARJ";
|
|
|
|
function detect_ARJ(bFile, bShowOptions) {
|
|
var nOffset, nSize;
|
|
if (bFile) {
|
|
nOffset = 0;
|
|
nSize = File.getSize();
|
|
} else {
|
|
nOffset = File.getOverlayOffset() + 8;
|
|
nSize = File.getOverlaySize();
|
|
}
|
|
if (nSize >= 64) {
|
|
if (File.compare("60EA", nOffset)) {
|
|
sVersion = File.readByte(nOffset + 5);
|
|
bDetected = true;
|
|
}
|
|
if (bDetected && bShowOptions) {
|
|
// Options
|
|
switch (File.readByte(nOffset + 7)) // Host OS
|
|
{
|
|
case (0):
|
|
sOptions = sOptions.append("MS-DOS");
|
|
break;
|
|
case (1):
|
|
sOptions = sOptions.append("PRIMOS");
|
|
break;
|
|
case (2):
|
|
sOptions = sOptions.append("UNIX");
|
|
break;
|
|
case (3):
|
|
sOptions = sOptions.append("AMIGA");
|
|
break;
|
|
case (4):
|
|
sOptions = sOptions.append("MAC-OS");
|
|
break;
|
|
case (5):
|
|
sOptions = sOptions.append("OS/2");
|
|
break;
|
|
case (6):
|
|
sOptions = sOptions.append("APPLE GS");
|
|
break;
|
|
case (7):
|
|
sOptions = sOptions.append("ATARI ST");
|
|
break;
|
|
case (8):
|
|
sOptions = sOptions.append("NeXT");
|
|
break;
|
|
case (9):
|
|
sOptions = sOptions.append("VAX VMS");
|
|
break;
|
|
}
|
|
if (File.readByte(nOffset + 8) & 0x01) // password
|
|
{
|
|
sOptions = sOptions.append("encrypted");
|
|
}
|
|
|
|
switch (File.readByte(nOffset + 9)) // Compression method
|
|
{
|
|
case (0):
|
|
sOptions = sOptions.append("stored");
|
|
break;
|
|
case (1):
|
|
sOptions = sOptions.append("compressed most");
|
|
break;
|
|
case (2):
|
|
sOptions = sOptions.append("compressed");
|
|
break;
|
|
case (3):
|
|
sOptions = sOptions.append("compressed faster");
|
|
break;
|
|
case (4):
|
|
sOptions = sOptions.append("compressed fastest");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} |