Update file(s): 2023-10-30

This commit is contained in:
horsicq 2023-10-30 18:05:25 +01:00
commit f0dcabc507
270 changed files with 441 additions and 8069 deletions

View file

@ -1,17 +0,0 @@
// DIE's signature file
init("archive","7-Zip");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=64)
{
if(Binary.compare("'7z'BCAF271C"))
{
sVersion=Binary.readByte(6)+"."+Binary.readByte(7);
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,19 +0,0 @@
// DIE's signature file
// Author: Tembo (http://tembolab.pl/products/executable-image-viewer.html)
init("format", "AAA Logo");
function detect(bShowType,bShowVersion,bShowOptions)
{
if (Binary.getSize() >= 90)
{
if (Binary.compare("2CA46774"))
{
sVersion = "";
sOptions = "";
bDetected = 1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,10 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
includeScript("ACE");
function detect(bShowType,bShowVersion,bShowOptions)
{
detect_ACE(1,bShowOptions);
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,31 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
init("image","Windows Animated Cursor");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=48)
{
if(Binary.compare("'RIFF'........'ACON'"))
{
var nOffset=Binary.findString(12,Binary.getSize()-12,"framicon");
if(nOffset!=-1)
{
sOptions=Binary.readByte(nOffset+18)+"x"+Binary.readByte(nOffset+19);
// Read the BPP from the first icon, as the header is unreliable.
nOffset+=12+Binary.readDword(nOffset+30);
sOptions=sOptions.append(Binary.readWord(nOffset+14)+"bpp");
}
nOffset=Binary.findSignature(12,Binary.getSize()-12,"'anih'24000000");
if(nOffset!=-1)
{
var nCount=Binary.readDword(nOffset+12);
sOptions=sOptions.append(nCount+(nCount==1?" icon":" icons"));
}
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,9 +0,0 @@
// DIE's signature file
includeScript("arj");
function detect(bShowType,bShowVersion,bShowOptions)
{
detect_ARJ(1,bShowOptions);
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("format","Atari ST TOS executable");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("601a0000....................0000"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,44 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
init("image","Windows Bitmap");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=40)
{
if(Binary.compare("'BM'"))
{
if(Binary.getSize()>=Binary.readDword(2))
{
switch(Binary.readDword(14))
{
case 40: sVersion="3"; break;
case 108: sVersion="4"; break;
case 124: sVersion="5"; break;
}
if(sVersion!="")
{
switch(Binary.readDword(0x1e))
{
case /*BI_RLE8*/1:
case /*BI_RLE4*/2: sOptions="RLE"; break;
case /*BI_JPEG*/4: sOptions="JPEG"; break;
case /*BI_PNG*/ 5: sOptions="PNG"; break;
}
nHeight=~~Binary.readDword(0x16);
if(nHeight<0)
{
nHeight=-nHeight;
sOptions=sOptions.append("top-down");
}
sOptions=sOptions.append(Binary.readDword(0x12)+"x"+nHeight,
Binary.readWord(0x1c)+"bpp");
}
bDetected=1;
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,38 +0,0 @@
// DIE's signature file
// Author: Rinat Aminow <rinat84.a@gmail.com>
init("archive","Coff library");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("'!<arch>'0A2F"))
{
var nOffset=Binary.readDword(72);
nOffset=Binary.swapBytes(nOffset)+58;
// short format
if(Binary.compare("600A4C01",nOffset))
{
sOptions="I386";
bDetected=1;
}
if(Binary.compare("600A6486",nOffset))
{
sOptions="AMD64";
bDetected=1;
}
// long format
if(Binary.compare("600A0000FFFF....4C01",nOffset))
{
sOptions="I386";
bDetected=1;
}
if(Binary.compare("600A0000FFFF....6486",nOffset))
{
sOptions="AMD64";
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,55 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
init("image","Windows Cursor");
includeScript("CurIcoBPP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=40)
{
if(Binary.compare("00000200"))
{
// Find the biggest, assuming square.
var nCount=Binary.readWord(4);
var nWidth=0,nHeight=0,nBPP=0;
var nHotX, nHotY;
for(var i=0;i<nCount;i++)
{
var w=Binary.readByte(6+i*16);
if(w>nWidth)
{
nWidth=w;
nHeight=Binary.readByte(7+i*16);
nBPP=getCurIcoBPP(6+i*16);
nHotX=Binary.readShort(10+i*16);
nHotY=Binary.readShort(12+i*16);
}
else if(w==nWidth)
{
var b=getCurIcoBPP(6+i*16);
if(b>nBPP)
{
nBPP=b;
nHotX=Binary.readShort(10+i*16);
nHotY=Binary.readShort(12+i*16);
}
}
}
sOptions=nWidth+"x"+nHeight;
if(nBPP!=0)
{
sOptions=sOptions.append(nBPP+"bpp");
}
sOptions=sOptions.append("("+nHotX+","+nHotY+")");
if(nCount>1)
{
sOptions=sOptions.append(nCount+" cursors");
}
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,25 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
includeScript("Cab");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(!detect_Cab(0,Binary.getSize(),bShowOptions))
{
if(Binary.compare("'ISc('"))
{
sName="InstallShield Cabinet File";
var nVer=Binary.readWord(4);
switch(Binary.readByte(7))
{
case 1: sVersion=(nVer>>12)&15; break;
case 2:
case 4: sVersion=(nVer/100).toFixed(2); break;
}
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,11 +0,0 @@
init("archive","DotBundle Project");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("3C70726F6A6563743E0D0A20203C6D61696E65786520706174683D"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,19 +0,0 @@
// DIE's signature file
// Author: Tembo (http://tembolab.pl/products/executable-image-viewer.html)
init("format", "Flash Video");
function detect(bShowType,bShowVersion,bShowOptions)
{
if (Binary.getSize() > 37)
{
if (Binary.compare("'FLV'") && Binary.compare("'onMetaData'", 27))
{
sVersion = "";
sOptions = "";
bDetected = 1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,21 +0,0 @@
// DIE's signature file
init("archive","Gzip");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=9)
{
if(Binary.compare("1F8B08"))
{
switch(Binary.readByte(8))
{
case 2: sOptions="best"; break;
case 4: sOptions="fast"; break;
}
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,109 +0,0 @@
// DIE's signature file
// Author: Tembo (http://tembolab.pl/products/executable-image-viewer.html)
init("format", "Guitar Pro");
function detect(bShowType,bShowVersion,bShowOptions)
{
if (Binary.getSize() > 31)
{
if (Binary.compare("'BCFZ'") || Binary.compare("'BCFS'"))
{
sVersion = "6.x";
sOptions = "Tablature";
bDetected = 1;
}
else if (Binary.compare("'GPAR'"))
{
sVersion = "6.x";
sOptions = "Soundbank";
bDetected = 1;
}
else if (Binary.compare("'FSB3'"))
{
sVersion = "5.x";
sOptions = "Soundbank";
bDetected = 1;
}
else
{
var sSignature = Binary.getString(1, Binary.readByte(0));
if (sSignature == "FICHIER GUITAR PRO v5.10")
{
sVersion = "5.1 or 5.2";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITAR PRO v5.00")
{
sVersion = "5.0";
sOptions = "Tablature";
bDetected = 1;
}
else if ((sSignature == "FICHIER GUITAR PRO L4.06") || (sSignature == "FICHIER GUITAR PRO v4.06"))
{
sVersion = "4.6";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITAR PRO v4.00")
{
sVersion = "4.0";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITAR PRO v3.00")
{
sVersion = "3.0";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITAR PRO v2.21")
{
sVersion = "2.21";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITAR PRO v2.20")
{
sVersion = "2.20";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITARE PRO v1.04")
{
sVersion = "1.4";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITARE PRO v1.03")
{
sVersion = "1.3";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITARE PRO v1.02")
{
sVersion = "1.2";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITARE PRO v1.01")
{
sVersion = "1.1";
sOptions = "Tablature";
bDetected = 1;
}
else if (sSignature == "FICHIER GUITARE PRO v1")
{
sVersion = "1.0";
sOptions = "Tablature";
bDetected = 1;
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,58 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
init("image","Windows Icon");
includeScript("CurIcoBPP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=40)
{
if(Binary.compare("00000100"))
{
// Find the biggest, assuming square.
var nCount=Binary.readWord(4);
var nWidth=0,nHeight=0,nBPP=0;
for(var i=0;i<nCount;i++)
{
var w=Binary.readByte(6+i*16),h;
var b=getCurIcoBPP(6+i*16);
if(w==0)
{
var nOffset=Binary.readDword(18+i*16);
if(Binary.compare("89'PNG\r\n'1A0A........'IHDR'",nOffset))
{
w=Binary.readBEDword(nOffset+16);
h=Binary.readBEDword(nOffset+20);
}
}
else
{
h=Binary.readByte(7+i*16);
}
if(w>nWidth)
{
nWidth=w;
nHeight=h;
nBPP=b;
}
else if(w==nWidth)
{
if(b>nBPP)
{
nBPP=b;
}
}
}
sOptions=sOptions.append(nWidth+"x"+nHeight,nBPP+"bpp");
if(nCount>1)
{
sOptions=sOptions.append(nCount+" icons");
}
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
init("format","ISO 9660");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>0x8010)
{
if(Binary.compare("01'CD001'01",0x8000))
{
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,32 +0,0 @@
// DIE's signature file
init("format","Microstation Java(JMDL) Compiled Class");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=8)
{
if(Binary.compare("CAFEBEEF"))
{
var nMinor=Binary.readBEWord(4);
var nMajor=Binary.readBEWord(6);
if(nMajor)
{
switch(nMajor)
{
case 0x2D: sVersion="JDK 1.1"; break;
case 0x2E: sVersion="JDK 1.2"; break;
case 0x2F: sVersion="JDK 1.3"; break;
case 0x30: sVersion="JDK 1.4"; break;
}
if((nMajor>=0x2D)&&(nMajor<=0x38))
{
bDetected=1;
}
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,38 +0,0 @@
// DIE's signature file
// Author: Jason Hood <jadoxa@yahoo.com.au>
init("image","JPEG");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=22)
{
if(Binary.compare("FFD8FFE0....'JFIF'00"))
{
bDetected=1;
sVersion=Binary.readByte(11)+".0"+Binary.readByte(12);
// Search for a Start Of Frame to get dimensions.
var nOffset=2;
while(nOffset<Binary.getSize())
{
var wTag=Binary.readBEWord(nOffset);
if(wTag>=0xFFC0&&wTag<=0xFFC3)
{
sOptions=Binary.readBEWord(nOffset+7)+"x"
+Binary.readBEWord(nOffset+5);
switch(Binary.readByte(nOffset+9))
{
case 1: sOptions=sOptions.append("grey"); break;
case 3: sOptions=sOptions.append("YCbCr"); break;
case 4: sOptions=sOptions.append("CMYK"); break;
}
break;
}
nOffset+=2+Binary.readBEWord(nOffset+2);
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,27 +0,0 @@
// DIE's signature file
// Author: LinXPP
init("archive","LZ4");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=9)
{
if(Binary.compare("04224d18"))
{
sVersion="";
bDetected=1;
}
else if(Binary.compare("02214c18"))
{
sVersion="old";
bDetected=1;
}
if(bDetected)
{
sOptions="block-size:"+Binary.readDword(7)+" byte";
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,18 +0,0 @@
// DIE's signature file
// Author: A.S.L - <asl@onet.eu> 2019
init("format", "MP4 Video");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>100)
{
if(Binary.compare("000000..'ftypisom'"))
{
sVersion="";
sOptions=Binary.getString(16); // example : isomiso2avc1mp41 / isomavc1 / isom
bDetected=1;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,17 +0,0 @@
// DIE's signature file
// Author: sendersu
/*
If errors pls contact sendersu on exelab.ru
*/
init("format","Microsoft Compiled HTML Help");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("'ITSF'03000000"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
init("archive","Microsoft Compound");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("D0CF11E0A1B11AE1"))
{
sVersion="MS Office 97-2003 or MSI etc.";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,13 +0,0 @@
// DIE's signature file
init("format","MS Help");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("3f5f0300"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,94 +0,0 @@
// DIE's signature file
// Author: Levis <levintaeyeon@live.com>
// History:
// Update sign to detect version of Python from 1.0 to 3.4
init("format","Python Compiled Module");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=8)
{
bDetected=1;
switch(Binary.readDword(0))
{
// Full info: https://github.com/python/cpython/blob/master/Lib/importlib/_bootstrap_external.py#L147
case 0x00999902: sVersion="1.0"; break;
case 0x00999903: sVersion="1.1-1.2"; break;
case 0x0A0D2E89: sVersion="1.3"; break;
case 0x0A0D1704: sVersion="1.4"; break;
case 0x0A0D4E99: sVersion="1.5"; break;
case 0x0A0DC4FC: sVersion="1.6"; break;
case 0x0A0DC687: sVersion="2.0"; break;
case 0x0A0DEB2A: sVersion="2.1"; break;
case 0x0A0DED2D: sVersion="2.2"; break;
case 0x0A0DF23B: sVersion="2.3"; break;
case 0x0A0DF259: sVersion="2.4a0"; break;
case 0x0A0DF263: sVersion="2.4a3"; break;
case 0x0A0DF26D: sVersion="2.4b1"; break;
case 0x0A0DF277: sVersion="2.5a0"; break;
case 0x0A0DF281: sVersion="2.5a0"; break;
case 0x0A0DF28B: sVersion="2.5a0"; break;
case 0x0A0DF28C: sVersion="2.5a0"; break;
case 0x0A0DF295: sVersion="2.5b3"; break;
case 0x0A0DF29F: sVersion="2.5b3"; break;
case 0x0A0DF2A9: sVersion="2.5c1"; break;
case 0x0A0DF2B3: sVersion="2.5c2"; break;
case 0x0A0DF2C7: sVersion="2.6a0"; break;
case 0x0A0DF2D1: sVersion="2.6a1"; break;
case 0x0A0DF2DB: sVersion="2.7a0"; break;
case 0x0A0DF2E5: sVersion="2.7a0"; break;
case 0x0A0DF2EF: sVersion="2.7a0"; break;
case 0x0A0DF2F9: sVersion="2.7a0"; break;
case 0x0A0DF303: sVersion="2.7a0"; break;
case 0x0A0D0C27: sVersion="3.0a4"; break;
case 0x0A0D0C3B: sVersion="3.0b1"; break;
case 0x0A0D0C45: sVersion="3.1a1"; break;
case 0x0A0D0C4F: sVersion="3.1a1"; break;
case 0x0A0D0C58: sVersion="3.2a1"; break;
case 0x0A0D0C62: sVersion="3.2a2"; break;
case 0x0A0D0C6C: sVersion="3.2a3"; break;
case 0x0A0D0C76: sVersion="3.3a1"; break;
case 0x0A0D0C80: sVersion="3.3a1"; break;
case 0x0A0D0C8A: sVersion="3.3a1"; break;
case 0x0A0D0C94: sVersion="3.3a2"; break;
case 0x0A0D0C9E: sVersion="3.3a4"; break;
case 0x0A0D0CB2: sVersion="3.4a1"; break;
case 0x0A0D0CBC: sVersion="3.4a1"; break;
case 0x0A0D0CC6: sVersion="3.4a1"; break;
case 0x0A0D0CD0: sVersion="3.4a1"; break;
case 0x0A0D0CDA: sVersion="3.4a4"; break;
case 0x0A0D0CE4: sVersion="3.4a4"; break;
case 0x0A0D0CEE: sVersion="3.4rc2"; break;
case 0x0A0D0CF8: sVersion="3.5a1"; break;
case 0x0A0D0D02: sVersion="3.5b1"; break;
case 0x0A0D0D0C: sVersion="3.5b2"; break;
case 0x0A0D0D16: sVersion="3.5b3"; break;
case 0x0A0D0D17: sVersion="3.5.2"; break;
case 0x0A0D0D20: sVersion="3.6a0"; break;
case 0x0A0D0D21: sVersion="3.6a1"; break;
case 0x0A0D0D2A: sVersion="3.6a2"; break;
case 0x0A0D0D2B: sVersion="3.6a2"; break;
case 0x0A0D0D2C: sVersion="3.6a2"; break;
case 0x0A0D0D2D: sVersion="3.6b1"; break;
case 0x0A0D0D2F: sVersion="3.6b1"; break;
case 0x0A0D0D30: sVersion="3.6b1"; break;
case 0x0A0D0D31: sVersion="3.6b1"; break;
case 0x0A0D0D32: sVersion="3.6b2"; break;
case 0x0A0D0D33: sVersion="3.6rc1"; break;
case 0x0A0D0D3E: sVersion="3.7a1"; break;
case 0x0A0D0D3F: sVersion="3.7a2"; break;
case 0x0A0D0D40: sVersion="3.7a4"; break;
case 0x0A0D0D41: sVersion="3.7b1"; break;
case 0x0A0D0D42: sVersion="3.7b5"; break;
case 0x0A0D0D48: sVersion="3.8a1"; break;
case 0x0A0D0D49: sVersion="3.8a1"; break;
case 0x0A0D0D52: sVersion="3.8a1"; break;
default:
bDetected=0;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
init("format","RTF");
function detect(bShowType,bShowVersion,bShowOptions)
{
var sText=Binary.getString(0,Math.min(Binary.getSize(),8192));
if(/^{\\rt/m.test(sText))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,30 +0,0 @@
// DIE's signature file
init("format","SWF");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=8)
{
switch(Binary.getString(0,3))
{
case "FWS":
bDetected=1;
sOptions="uncompressed";
break;
case "CWS":
bDetected=1;
sOptions="ZLIB";
break;
case "ZWS":
bDetected=1;
sOptions="LZMA";
}
if(bDetected)
{
sVersion=Binary.readByte(3);
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,82 +0,0 @@
// DIE's signature file
init("image","TIFF");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=8)
{
var nOffset=Binary.readDword(4);
var bBE=0;
if(Binary.compare("'II'2A00"))
{
sOptions="little endian";
bDetected=1;
}
else if(Binary.compare("'MM'002A"))
{
sOptions="big endian";
nOffset=Binary.swapBytes(nOffset);
bBE=1;
bDetected=1;
}
if(bDetected&&bShowOptions)
{
var nCount=Binary.readEWord(nOffset,bBE);
var nWidth=0,nHeight=0,nBPS=1,nCol=0,nComp=1;
nOffset+=2;
while(nCount--)
{
var nTag=Binary.readEWord(nOffset,bBE);
var nType=Binary.readEWord(nOffset+2,bBE);
switch(nTag)
{
case 0x100: nWidth=(nType==3)?Binary.readEWord(nOffset+8)
:Binary.readEDword(nOffset+8);
break;
case 0x101: nHeight=(nType==3)?Binary.readEWord(nOffset+8)
:Binary.readEDword(nOffset+8);
break;
case 0x102: nBPS=Binary.readEDword(nOffset+4)==1
?Binary.readEWord(nOffset+8)
:Binary.readEWord(Binary.readEDword(nOffset+8));
// assume all samples are the same size
break;
case 0x103: nComp=Binary.readEWord(nOffset+8);
break;
case 0x106: nCol=Binary.readEWord(nOffset+8);
break;
}
nOffset+=12;
}
switch(nComp)
{
case 1: sOptions=sOptions.append("Uncompressed"); break;
case 2: sOptions=sOptions.append("Huffman"); break;
case 3: sOptions=sOptions.append("Group 3"); break;
case 4: sOptions=sOptions.append("Group 4"); break;
case 5: sOptions=sOptions.append("LZW"); break;
case 6: sOptions=sOptions.append("embedded JPEG (602Photo software)"); break;
case 7: sOptions=sOptions.append("JPEG"); break;
case 32771: sOptions=sOptions.append("Alchemy software type 6 unknown compression"); break;
case 32773: sOptions=sOptions.append("PackBits"); break;
case 32946: sOptions=sOptions.append("Deflate"); break;
case 34690: sOptions=sOptions.append("LDF bitonal"); break;
}
if(nWidth!=0&&nHeight!=0)
{
sOptions=sOptions.append(nWidth+"x"+nHeight);
}
sOptions=sOptions.append(nBPS+"-bit ");
switch(nCol)
{
case 0: sOptions+="W/B"; break;
case 1: sOptions+="B/W"; break;
case 2: sOptions+="RGB"; break;
case 3: sOptions+="index"; break;
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,19 +0,0 @@
// DIE's signature file
init("format","Universal Disk Image Format");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("7801730d62626060"))
{
sOptions="read-only zlib-compressed";
bDetected=1;
}
else if(Binary.compare("45520200")&&Binary.compare("'disk image'",0x410))
{
sOptions="read/write";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -73,12 +73,39 @@ function detect(bShowType,bShowVersion,bShowOptions) {
sName = "Aero Tracker module (.AERO)";
sVersion = "v"+File.read_uint8(0x0E);
}
else if(Binary.compare("'THX'01")) {
else if(Binary.compare("'THX'0.")) {
// ref http://lclevy.free.fr/exotica/ahx/ahxformat.txt
bDetected = 1;
sName = "Abyss' Highest eXperience module (.AHX)";
var ptitle = File.read_uint16(4,_BE);
if(Binary.isVerbose())
sOption(File.read_ansiString(ptitle,0x20));
var V = File.read_uint8(3);
if(!V) sVersion = "v1.00~1.27"; else sVersion = "v2.0+";
malformed = false;
var b6 = File.read_uint8(6);
trk0saved = b6 >> 7;
switch((b6 >> 4) & 7) {
case 0: if(V) spd = "50Hz"; else spd = ""; break;
case 1: spd = "100Hz"; break;
case 2: spd = "150Hz"; break;
case 3: spd = "200Hz"; break;
default: malformed = true;
}
len = File.read_uint16(6,_BE) & 0xFFF;
if(!len || len > 999) malformed = true;
lp = File.read_uint16(8,_BE);
if(lp >= len) malformed = true;
trl = File.read_uint8(10); if(!trl || trl > 64) malformed = true;
smp = File.read_uint8(12); if(smp > 63) malformed = true;
if(malformed) sVersion += "/malformed";
if(Binary.isVerbose()) {
if(File.getSize() < 0xFFFF) {
var ptitle = File.read_uint16(4,_BE);
sOption(File.read_ansiString(ptitle,0x20));
}
trk = File.read_uint8(11);
sub = File.read_uint8(13);
sOption("trk0_saved:"+trk0saved+" len:"+len+" sub:"+sub+" loop:"+lp+" trl:"+trl+" trk:"+trk+" smp:"+smp)
sOption(spd,"spd:")
}
}
else if(Binary.compare("'AM01'000000") && Binary.compare("'ASD1'00", 0x38)) {
bDetected = 1;
@ -345,10 +372,6 @@ function detect(bShowType,bShowVersion,bShowOptions) {
sOptionT(misc);
}
}
else if(Binary.compare("'CBMF'")) {
bDetected = 1;
sName = "Bob's AdLib Music (.BAM)";
}
else if(Binary.compare("'CBA'F9")) {
bDetected = 1;
sName = "CBA module (.CBA)";
@ -686,8 +709,7 @@ function detect(bShowType,bShowVersion,bShowOptions) {
}
}
else if(Binary.compare("'DeFy DTM'")) {
bDetected = 1;
sName = "DeFy AdLib Tracker module (.DTM)";
sName = "DeFy AdLib Tracker module (.DTM)"; bDetected = 1;
sVersion = "v"+File.read_ansiString(9,3);
if(Binary.isVerbose()) {
sOptionT(File.read_ansiString(0xD,20));
@ -695,27 +717,36 @@ function detect(bShowType,bShowVersion,bShowOptions) {
}
}
else if(Binary.compare("'SONG'........'NAME'")) {
bDetected = 1;
sName = "DigiTrekker module (.DTM)";
sName = "DigiTrekker module (.DTM)"; bDetected = 1;
if(Binary.isVerbose())
sOptionT(File.read_ansiString(0x10,20));
}
else if(Binary.compare("' PWD'03") && Binary.compare("'Master'",0x0E)) {
bDetected = 1;
sName = "DarkWave Studio module (.DWP)";
sName = "DarkWave Studio module (.DWP)"; bDetected = 1
}
else if(Binary.compare("48E700F041FA....4CD8")) {
bDetected = 1;
sName = "Darius Zendeh's module (.DZ) or Mark II module (.MK2)";
//TODO TELL THEM APART!!!
else if(File.getSize() >= 0x500 && Binary.compare("48E700F0 41FA.... 4CD80600")) {
sName = 'Darius "Mark II" Zendeh module (.DZ)'; bDetected = 1;
if(Binary.compare("4A44",0xC)) {
sVersion = "type 1";
if(Binary.isVerbose()) {
p = File.findSignature(0,0x80,"0C04.... 66..41FA");
if(p >= 0) sOption(File.read_uint16(p+2,_BE)+3,"×")
}
}
else if(Binary.compare("4A00",0xC)) sVersion = "type 2";
else if(Binary.compare("0C00",0xC)) sVersion = "type 3";
}
else if(File.getSize() >= 0x500 && Binary.compare("48E778F0 41FA.... 4CD80600 0C0000FF")) {
sName = "Darius Zendeh module (.DZ)"; sVersion = "strange"; bDetected = 1
}
else if(File.getSize() >= 0x500 && Binary.findSignature(0x200,0x200,"'.ZADS89.'") >= 0) {
sName = "Mark II Sound System module (.MK2)"; bDetected = 1;
}
else if(Binary.compare("'EASO'")) {
bDetected = 1;
sName = "EarAche module (.EAS)";
sName = "EarAche module (.EAS)"; bDetected = 1;
}
else if(Binary.compare("'FORM'.... ....'EMODEMIC'")) {
bDetected = 1;
sName = "Quadra Composer module (.EMOD)";
sName = "Quadra Composer module (.EMOD)"; bDetected = 1;
if(Binary.isVerbose()) {
sOptionT(File.read_ansiString(0x16,0x28));
sOptionT(File.read_ansiString(0x44,0x18),"by: ");
@ -743,7 +774,7 @@ function detect(bShowType,bShowVersion,bShowOptions) {
sOptionT(misc);
}
}
else if((File.getSize()>0x24 && Binary.compare('"ETracker (C) BY ESI."',10)) ||
else if((File.getSize()>0x24 && Binary.compare("'ETracker (C) BY ESI.'",10)) ||
(File.getSize()>0x4D4 && Binary.compare("21B384") &&
Binary.compare("'ETracker (C) BY ESI.'",File.read_uint16(1,_LE)-0x8000+10))) {
//kudos to horsicq for helping narrow down the bad samples in modland files
@ -761,19 +792,40 @@ function detect(bShowType,bShowVersion,bShowOptions) {
sOption(File.read_codePageString(0,0x20,"CP932"))
}
}
else if(Binary.compare("13FC") && Binary.compare("4E710439",8)) {
else if(Binary.compare("13FC0040") && Binary.compare("4E7104390001",8)
&& Binary.compare("66F44E75 48E7FFFE",18)) {
bDetected = 1;
sName = "Fashion Tracker module (.EX)";
}
else if(Binary.compare("'FAR'FE") && Binary.compare("0D0A1A",0x2C)) {
//ref https://web.archive.org/web/20151027135146/http://hackipedia.org/File%20formats/Music/Sample%20based/text/Format%20Specifications%20(FAR,%20FSM,%20USM,%20F2R)%20by%20Daniel%20Potter.cp437.txt.utf-8.txt
bDetected = 1; nV = File.read_uint8(0x31);
sName = "Farandole Composer module (.FAR)";
sVersion = "v"+ (nV>>4) +"."+ (nV&0x0F);
if(Binary.isVerbose()) {
sOptionT(File.read_codePageString(4,0x28,"CP850"));
sOption(File.read_uint8(0x4B),"spd:");
msg_ = File.read_uint16(0x60,_LE);
sOption(File.read_codePageString(0x62,msg_,"CP850").trim().slice(0,0x100).trim()+"...")
var stlen = File.read_uint16(0x60,_LE);
sOption(File.read_codePageString(0x62,stlen,"CP850").trim().slice(0,0x100).trim()+"...");
sOption("ord:"+File.read_uint8(stlen+0x163)
+" ptn:"+File.read_uint8(stlen+0x162)
+" lp:"+File.read_uint8(stlen+0x164))
}
}
else if(Binary.compare("'FPT'FE") && Binary.compare("0D0A1A",0x24)) {
//ref https://web.archive.org/web/20151027135146/http://hackipedia.org/File%20formats/Music/Sample%20based/text/Format%20Specifications%20(FAR,%20FSM,%20USM,%20F2R)%20by%20Daniel%20Potter.cp437.txt.utf-8.txt
sName = "Farandole Composer pattern (.FPT)"; bDetected = 1;
if(Binary.isVerbose())
sOptionT(File.read_codePageString(4,0x20,"CP850"));
}
else if(Binary.compare("'FSM'FE") && Binary.compare("0A0D1A",0x24)) {
//ref https://web.archive.org/web/20151027135146/http://hackipedia.org/File%20formats/Music/Sample%20based/text/Format%20Specifications%20(FAR,%20FSM,%20USM,%20F2R)%20by%20Daniel%20Potter.cp437.txt.utf-8.txt
sName = "Farandole Composer sample (.FSM)"; bDetected = 1;
if(Binary.isVerbose()) {
sOptionT(File.read_codePageString(4,0x20,"CP850"));
if(File.read_uint8(0x35)) type = "16bit"; else type = "8bit";
if(File.read_uint8(0x36)&4) looped = " looped"; else looped = "";
sVersion = type+looped;
sOption("len:"+File.read_uint32(0x27,_LE));
}
}
else if(Binary.compare("'FC14'") && (File.getSize() > 192)) {
@ -2438,16 +2490,64 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
} //isDeepVerbose
if(Binary.isVerbose()) sOption(File.read_uint16(8,_LE),"clkspd:")
}
else if(Binary.compare("00407F40 00C081C0") && Binary.compare("41FAFFEE",0x38)) {
//from https://zakalwe.fi/uade/uade3/uade-3.03.tar.bz2 / uade/amigasrc/players/wanted_team/RobHubbard_ST/src/Rob Hubbard ST_v2.asm
sName = "Rob Hubbard ST module (.RHO)"; sVersion = "v1.1"; bDetected = 1;
if(Binary.isVerbose()) {
a2 = 180; malformed = false;
do { //findplay
t = File.read_uint16(a2,_BE); a2 += 2;
} while(a2 < File.getSize() && t != 0x4E75);
if(a2 > File.getSize()) { malformed = true; break }
playp = a2;
do { //findend
t = File.read_uint16(a2,_BE); a2 += 2;
} while(a2 < File.getSize() && t != 0xDFFC);
if(a2 > File.getSize()) { malformed = true; break }
a2 += 4; endp = a2;
do { //findinit
t = File.read_uint16(a2,_BE); a2 += 2;
} while(a2 < File.getSize() && t != 0x4E75);
if(a2 > File.getSize()) { malformed = true; break }
do { //findIt1
t = File.read_uint16(a2,_BE); a2 += 2;
} while(a2 < File.getSize() && t != 0x7E02);
if(a2 > File.getSize()) { malformed = true; break }
songp = a2+File.read_uint16(a2+2,_BE)+2;
d0 = File.read_uint32(songp,_BE)/12;
if(d0 > 1) sOption(d0,"×");
d0 = d0*3-1; d5 = 0;
a1 = a3 = songp;
while(d0 >= 0) {
a1 = songp;
a1 += File.read_uint32(a3,_BE); a3 += 4;
while(a1 < File.getSize()) {
d1 = File.read_uint32(a1,_BE); a1 += 4;
if(!d1) break;
if(d1 > d5) d5 = d1
}
d0--
}
a1 = songp+d5;
do {
t = File.read_uint8(a1); a1++
} while(a1 <= File.getSize() && t != 0x87)
sz = a1; // - moduleptr, 0 here
if(a1 > File.getSize()) { malformed = true; break }
sOption(sz,"sz:")
if(malformed) sVersion += "/malformed";
}
}
else if(Binary.compare("'RNS0'") && Binary.compare("'>>> Chunk Start <<<'", 0x09)) {
bDetected = 1;
sName = "Renoise module (.RNS)"; sV=File.read_ansiString(3,4); sVersion = "v"+sV;
if(sV<"05") sVersion+="/RN<1.1.1";
else if(sV==="05") sVersion+="/RN1.1.1";
else if(sV<"015") sVersion+="/RN<1.2.7";
else if(sV==="015") sVersion+="/RN1.2.7";
else if(sV<"018") sVersion+="/RN<1.5.2";
else if(sV==="018") sVersion+="/RN1.5.2";
else sVersion+="/RN>1.5.2"
sName = "Renoise module (.RNS)"; bDetected = 1;
sV = File.read_ansiString(3,4); sVersion = "v"+sV;
if(sV < "05") sVersion += "/RN<1.1.1";
else if(sV === "05") sVersion += "/RN1.1.1";
else if(sV < "015") sVersion += "/RN<1.2.7";
else if(sV === "015") sVersion += "/RN1.2.7";
else if(sV < "018") sVersion += "/RN<1.5.2";
else if(sV === "018") sVersion += "/RN1.5.2";
else sVersion += "/RN>1.5.2"
if(Binary.isVerbose()) {
p = 8;
while (p < File.getSize()) {
@ -2664,9 +2764,20 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
}//switch sV
}//isVerbose
}
else if(Binary.compare("'SOARV'")) {
bDetected = 1; sName = "Sonic Arranger module (.SA)";
sVersion = "v"+File.read_ansiString(5,3)
else if(Binary.compare("'SOARV1.0STBL'")) {
//TODO unify all SAs, rewrite the check, and extract the lengths using this source:
// https://zakalwe.fi/uade/uade3/uade-3.03.tar.bz2 / uade/amigasrc/players/wanted_team/Sonic_Arranger/Sonic Arranger_v1.asm
sName = "Sonic Arranger module (.SA)"; bDetected = 1;
sVersion = "v1.0"
}
else if(Binary.compare("4EFA002A 4EFA06FC 4EFA077C")) {
sName = "Sonic Arranger module (.SA)"; bDetected = 1; sVersion = "old"
}
else if(Binary.compare("4EFA002A 4EFA06E4 4EFA0764")) {
sName = "Sonic Arranger module (.SA)"; sVersion = "v.E464"; bDetected = 1
}
else if(Binary.compare("4EFA001A 4EFA06C6 4EFA073A")) {
sName = "Sonic Arranger module (.SA)"; sVersion = "v.C63A"; bDetected = 1
}
else if(Binary.compare("'SAP'0D0A")) {
bDetected = 1;
@ -3313,6 +3424,11 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
sOption("spd0:"+spd1+"/"+spd2+" intlv:"+intlv);
}
}
else if(Binary.compare("0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F", 0x14)
&& Binary.compare("FFFF001000000030000000", 0x181)) {
bDetected = 1;
sName = "The Musical Enlightenment module (.TME)"
}
else if(Binary.compare("'TRK01/TV.ES.'")) {
bDetected = 1;
sName = "RamTracker module (.TRK)";
@ -3407,10 +3523,11 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
}
else if(Binary.compare("'VGEfmtV'3.")) {
bDetected = 1;
sName = "VGM Music Maker module (.VGE)";
sVersion = "v"+File.read_ansiString(7,1);
sName = "Shiru's VGM Music Maker module (.VGE)";
sV = File.read_ansiString(7,1); sVersion = "v"+sV;
}
else if(Binary.compare("'Vgm '")) {
else if( Binary.compare("'Vgm '") && ( !File.read_uint32(0x14,_LE) ||
Binary.compare("'Gd3 '",File.read_uint32(0x14,_LE)+0x14) )) {
//ref https://vgmrips.net/wiki/VGM_Specification
// & https://vgmrips.net/wiki/GD3_Specification
bDetected = 1; malformed = false;
@ -3422,7 +3539,7 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
tags = []; //11 of them
gd3p = File.read_uint32(0x14,_LE)+0x14;
if(gd3p > 0x14)
if(File.read_ansiString(gd3p,4) == "Gd3 ") {
if(File.read_ansiString(gd3p,4) === "Gd3 ") {
sVersion += "/Gd3 v"+(readBytes(gd3p+4,4).join("")/100);
taglen = File.read_uint32(gd3p+8,_LE); gd3p += 12;
if(gd3p+taglen > File.getSize()) malformed = true;
@ -3452,7 +3569,8 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
}
if(eofofs < File.getSize())
if(File.read_ansiString(eofofs,4) == "Vgm ") sOption("multisong");
else sOption("+extra data")
else sOption("+extra data");
sOption(File.read_uint32(0x18,_LE),"smp: ")
}
dataofs = File.read_uint32(0x34,_LE);
if((sV >= "v1.50") && (!dataofs)) malformed = true;
@ -3480,8 +3598,8 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
sVersion = "v"+File.read_ansiString(0x12,3).trim();
sName = "Vortex Tracker II audio (.VT2)";
if(Binary.isVerbose()) {
sOptionT(File.read_ansiString(0x1E,0x20));
sOptionT(File.read_ansiString(0x42,0x20),"by: ");
sOptionT(File.read_codePageString(0x1E,0x20,"CP1251"));
sOptionT(File.read_codePageString(0x42,0x20,"CP1251"),"by: ");
}
}
else if(Binary.compare("6000") && Binary.compare("48E7FFFE610000",0x04)
@ -3566,6 +3684,12 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
if(Binary.isVerbose())
sOptionT(File.read_ansiString(0x11,0x14));
}
else if(Binary.compare("'FORM'........'XDIRINFO'")) {
bDetected = 1;
sName = "Extended MIDI chiptune (.XMI)";
if(Binary.isVerbose())
sOption(File.read_uint16(0x14,_LE),"×")
}
else if(Binary.compare("'YM'3.'!'") || Binary.compare("'YM3b!'")
|| Binary.compare("'YMT'3.'LeOnArD!'") || Binary.compare("'MIX1LeOnArD!'")) {
//ref https://github.com/cpcsdk/libstsound/blob/master/Ymload.cpp
@ -3676,51 +3800,6 @@ _log("after-for "+Hex(p)+", tagdata? "+tagdata);
// THE SANITY CHECK-STYLE DETECTION
// (* It's still hella fast tho, no worries)
function isADL() {
//ref https://github.com/adplug/adplug/blob/master/src/adl.cpp
if(File.getSize() < 720 || File.getSize() > 0xFFFF) return false; //v1 min. size
p = 0; nV = 4; ofs = 500 /*0x1F4*/; //track entries
for(i=0; i < 250; i++) { //500=1F4h is the trackentries buffer
w = File.read_uint16(p,_LE); p += 2;
if(500<=w && w<0xFFFF) { //in v4, all entries are within this range
nV = 3; ofs = 120 /*0x78*/; break
}
}
p = ofs;
if(nV < 4) {
nprogofs = 150; //for v1
for(i=0; i < nprogofs; i++) {
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w!=0xFFFF && w+ofs>File.getSize()) {
return false; }
if(w < 600) return false;
if(w < 1000) nV = 1;
}}}
if(nV > 1) {
if(File.getSize() < 1120) return false; //v2/3 min. size
nprogofs = 250 /*0xFA*/;
for(i=150; i < nprogofs; i++) { //check the rest of'em
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w!=0xFFFF && w+ofs>File.getSize()) return false;
if(w && w<1000) return false;
}}} else { //v4
if(File.getSize() < 2500) return false;
nprogofs = 500;
for(i=0; i < nprogofs; i++) { //check the rest of'em
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w!=0xFFFF && w+ofs > File.getSize()) return false;
if(w && w<2000) return false;
}}}
return true
//whilst it'd be nice to have instruments (same len as prog ptr tbl) subsong detection...
//... it's too much already
//TODO false positive: modland/pmd/- unknown/Akai suishou no hitomi/ano-s01.m
}
function isASC1() { //basically ASC0 + loop pos
//ref https://bulba.untergrund.net/Ay_Emul29.src.7z/Players.pas -> FoundASC1
if(File.getSize() < 9) return false;
@ -4477,6 +4556,74 @@ if(/*!bDetected && */Binary.isDeepScan() && isPMD() ) {
}
}
function isRobHubbardRH() {
//from https://zakalwe.fi/uade/uade3/uade-3.03.tar.bz2 / uade/amigasrc/players/wanted_team/RobHubbard/src/RobHubbard_v7.asm
//the FX files not included -- TODO
if(!Binary.compare("6000.... 6000.... 6000.... 6000.... 6000.... 41FA.... ........ 4E7541FA"))
return false; //Check2
a2 = 0x40; d4 = 8;
do { //loop2
if(File.read_uint16(a2,_BE) == 0x2418) break;
a2 += 2; d4--
} while(d4);
if(!d4) return false; //found2
smp = d3 = File.read_uint8(a2-1)+1;
a2 = 0x36; d4 = 5;
do { //loop3
if(File.read_uint16(a2,_BE) == 0x41FA) break;
a2 += 2; d4--
} while(d4);
if(!d4) return false; //found3
a2 += 2;
a4 = a2;
d4 = a2+File.read_uint16(a2,_BE)+2; //minus a3 = moduleptr, 0 in our case
if(File.read_uint16(a4+2,_BE) == 0xD1FC) d4 += 0x40;
a3 = d4-2; //again +moduleptr; then moduleptr[a6] = a3 (puts in sampleptr); a6 += 4;
d5 = 0; a2 = a3;
do { //loop4
d1 = File.read_uint32(a3,_BE);
if(d1 > 0x10000) return false;
d1 += 6;
d5 += d1;
a3 += d1;
d3--
} while(d3);
if(File.read_uint16(a3,_BE) != 0x4E71) return false; //at the EOF now
a3 = 0; a0 = 130+a3;
d0 = 10;
do { //loop
if(File.read_uint16(a0,_BE) == 0x41EB) { a0 += 2; break }
a0 += 2; d0--;
} while(d0);
if(!d0) return false; //else found
d1 = 0;
d2 = File.read_uint16(a0,_BE);
a3 += d2;
do { //hop
a3 += 18; d1++;
} while(File.read_uint16(a3,_BE));
d2 = a2-a3;
do { //petla
b = File.read_uint8(a3,_BE);
if(b != 0x84)
if(b != 0x85)
{ a3++; d2--; if(d2 < 0) break; else continue }
d0++; a3++; d2--
} while(d2 >= 0);
songsz = d4;
calcsz = d4+d5;
steps = d0;
x = d1;
return true;
}
if(!bDetected && Binary.isDeepScan() && isRobHubbardRH()) {
sName = "Rob Hubbard's module (.RH)"; sVersion = "v1.4"; bDetected = 1;
if(Binary.isVerbose()) {
if(x > 1) sOption(x,"×");
sOption("smp:"+smp+" songsz:"+songsz+" calcsz:"+calcsz+" steps:"+steps)
}
}
// function isTuneFish4() {
// // taken from tunefish src\tunefish4\source\synth\tfrecorder.cpp
// //TODO
@ -4494,7 +4641,7 @@ if(/*!bDetected && */Binary.isDeepScan() && isPMD() ) {
// like too loose and hits other known formats, or like potentially taking up unknown cycle#
// They all are in dire need of amending, and they're set to go in parallel with the other detections,
// They all are in dire need of amending, and they're set to go after the other detections,
// so you won't miss the good matches because of these
@ -4646,13 +4793,13 @@ function isMXDRV() {
// ref ditto / SRC/MDX2MUS.ASM
// useful links: https://gorry.haun.org/mx/index_e.html
if(File.getSize() < 4+2+9*2 || File.getSize() > 0xFFFF) return false; //minimum header
da1 = File.findSignature(0,Math.max(1024,File.getSize()),"0D0A1A");
da1 = File.findSignature(0,Math.min(1024,File.getSize()),"0D0A1A");
if(da1 < 0) return false;
for(i=0; i<da1; i++) {
c = File.read_uint8(i,1); if((c < 0x20) && (c != 0x1B)) return false;
for(i = 0; i < da1; i++) {
c = File.read_uint8(i); if(c < 0x20 && c != 0x1B) return false;
}
t = File.read_codePageString(0,da1,"SJIS");
p = File.findSignature(da1,Math.max(1024,File.getSize()-da1),"00"); if(p < 0) return false;
p = File.findSignature(da1,Math.min(1024,File.getSize()-da1),"00"); if(p < 0) return false;
if(da1+3 != p)
pdxfn = File.read_ansiString(da1+3,p);
else pdxfn = "";
@ -4761,6 +4908,170 @@ if(!bDetected && Binary.isDeepScan() && isV2M()) {
//TODO add the final tags
}
function isComposer670() {
// from https://github.com/OpenMPT/openmpt/blob/master/soundlib/Load_c67.cpp
if(File.getSize() < 1954+1024) return false; //7A2+400 = BA2
spd = File.read_uint8(0);
if(!spd || spd > 15) return false;
ord = 0;
for (i=0; i < 256; i++) { // check orders
o = File.read_uint8(1698+i);
if(o >= 128 && o != 0xFF) return false;
if(o > ord && o != 0xFF) ord = o;
}
ord++;
nonz = false;
for (i=0; i < 32; i++) { // checking sample records
_z = File.read_uint8(2+i*13+12); if(_z) return false;
_t = File.read_uint32(0x1A2+i*16,_LE); if(_t) return false;
_l = File.read_uint32(0x1A2+i*16+4,_LE); if(_l > 0xFFFFF) return false;
_ls = File.read_uint32(0x1A2+i*16+8,_LE);
_le = File.read_uint32(0x1A2+i*16+12,_LE);
_z = File.read_uint8(0x3A2+i*13+12); if(_z) return false;
if(File.read_uint8(0x542+i*11) & 0xF0) return false;
if(File.read_uint8(0x542+i*11+5) & 0xFC) return false;
if(File.read_uint8(0x542+i*11+10) & 0xFC) return false;
if(_l && _le < 0xFFFFF) if(_le > _l || _ls > _le) return false;
if(!nonz && (_l || !Binary.compare("00000000 00000000 000000",0x542+i*11)))
nonz = true;
}
if(!nonz) return false;
malformed = false;
for (i=0; i < 128; i++) { // checking patterns
ptnofs = File.read_uint32(0x7A2+i*4,_LE);
ptnlen = File.read_uint32(0x9A2+i*4,_LE);
if(ptnofs > 0xFFFFFF || (File.getSize() < 0xBA2+ptnofs+ptnlen))
return false;
}
if(!malformed) malformed = (ptnlen < 3 || ptnlen > 0x1000);
return true
}
if(!bDetected && Binary.isDeepScan() && isComposer670()) {
sName = "CDFM/Composer 670 module (.C67)"; bDetected = 1;
if(malformed) sVersion = "malformed";
if(Binary.isVerbose()) sOption = "spd:"+spd+" ord:"+ord
}
function isADL() {
//ref https://github.com/adplug/adplug/blob/master/src/adl.cpp -> CadlPlayer::load
if(File.getSize() < 720 || File.getSize() > 0xFFFF) return false; //v1 min. size
p = 0; nV = 4; ofs = 500 /*0x1F4*/; //track entries
for(i=0; i < 250; i++) { //500=1F4h is the trackentries buffer
w = File.read_uint16(p,_LE); p += 2;
if(500 <= w && w < 0xFFFF) { //in v4, all entries are within this range
nV = 3; ofs = 120 /*0x78*/; break
}
}
p = ofs;
if(nV < 4) {
nprogofs = 150; //for v1
for(i=0; i < nprogofs; i++) {
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w != 0xFFFF && w+ofs > File.getSize()) return false;
if(w < 600) return false;
if(w < 1000) { nV = 1; if(File.read_uint16(120,_LE) != 0x258) return false }
}
if(nV > 1) {
if(File.getSize() < 1120) return false; //v2/3 min. size
nprogofs = 250 /*0xFA*/;
for(i=150; i < nprogofs; i++) { //check the rest of'em
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w != 0xFFFF && w+ofs > File.getSize()) return false;
if(w && w < 1000) return false;
}}}}
} else { //v4
if(File.getSize() < 2500) return false;
nprogofs = 500;
for(i=0; i < nprogofs; i++) { //check the rest of'em
w = File.read_uint16(p,_LE); p += 2;
if(w) {
if(w != 0xFFFF && w+ofs > File.getSize()) return false;
if(w && w < 2000) return false;
}}}
return true
//whilst it'd be nice to have instruments (same len as prog ptr tbl) subsong detection...
//... it's too much already
//TODO false positive: modland/pmd/- unknown/Akai suishou no hitomi/ano-s01.m
}
if(!bDetected && Binary.isDeepScan() && isADL()) {
sName = "Westwood ADL chiptune (.ADL)"; bDetected = 1;
switch(nV) {
case 1: sVersion = "v1"; break;
case 3: sVersion = "v2.x"; break;
case 4: sVersion = "v3"
}
}
function isPuma() {
//from https://zakalwe.fi/uade/uade3/uade-3.03.tar.bz2 / uade/amigasrc/players/wanted_team/PumaTracker/src/PumaTracker_v2.asm
//ref http://lclevy.free.fr/amiga/exotic/puma_str.txt
if(File.read_uint8(12)) return false;
ord = File.read_uint8(13)+1;
a0 = 0x50+ord*14; //patterns table
if(a0 >= File.getSize()) return false;
if(!File.compare("'patt'",a0)) return false; a0 += 4;
d1 = 32;
while(a0 < File.getSize()) {
t = File.read_uint8(a0+3); if(!t) return false;
d1 -= t; if(d1 < 0) return false; if(!d1) break;
a0 += 4
}
if (!File.compare("'patt'",a0+4)) return false; //Check2 finishes here
a0 = smp = d0 = d4 = 0;
ptn = File.read_uint16(0xE,_BE);
synsmp = File.read_uint16(0x10,_BE); //"number of sound data"
loop = File.read_uint16(0x12,_BE);
a1 = 0x14; //+moduleptr = smp start offsets
for(d2 = 0; d2 < 10; d2++) { //NextSamp
smpp = File.read_uint32(a1,_BE); a1 += 4;
if(!smpp) continue; //-> NoSamp
else smp++;
if(!d4 || smpp >= d4) d4 = smpp; //d4 <- maxsmpp
} //NoSamp
a1 = 0; //moduleptr
if(!d4) { //jump to .Samples it if d4 != 0
d1 = synsmp;
a1 += 80;
while (d1 >= 0) { // .FindSample
if(a1 > File.getSize())
if(Binary.isHeuristicScan())
{ sz = -1; malformed = true; return true } //too short
else return false;
t = File.compare("'in'",a1); a1 += 2; if(!t) continue;
t = File.compare("'st'",a1); a1 += 2; if(!t) continue;
d1--;
}
sz = a1
} else { // .Samples
a2 = a1+0x3C; //0x3C is the ofs of samples lengths in words
a1 += 0x14;
sz = 0; //max smp end
for(d2 = 0; d2 < 10; d2++) {// .FindSize
smpsz = File.read_uint32(a1,_BE); a1 += 4;
d1 = File.read_uint16(a2,_BE); a2 += 2;
if(d1&1) d1 --;
d1 += d1+smpsz;
if(sz < d1) sz = d1;
}
}
if(sz > File.getSize())
if(Binary.isHeuristicScan()) { malformed = true; return true } //too short
else return false;
songsz = d4;
return true;
}
if(!bDetected && Binary.isDeepScan() && isPuma()) {
sName = "PumaTracker module (.PUMA)"; sVersion = "v1.1"; bDetected = 1;
if(malformed) sVersion += "/malformed";
if(Binary.isVerbose()) {
sOption(File.read_ansiString(0,0x0C).trim());
sOption("ord:"+ord+" ptn:"+ptn+" smp:"+smp+" synsmp:"+synsmp
+" lp:"+loop+" sz:"+sz)
}
}
function isFLS() {
//this detection is based purely on sanity checks
// AND a tiiiiiny ~bruteforce~ of membase, which is why it comes in last
@ -4768,7 +5079,7 @@ function isFLS() {
if(File.getSize() < 6) return false;
postp = File.read_uint16(0x00,_LE); orntp = File.read_uint16(0x02,_LE); //positions & ornaments table ptrs
smptp = File.read_uint16(0x04,_LE); ptnp = 6; //samples table ptr & patterns
j = postp - smptp; if((j < 0) || ((j&3) != 0)) return false;
j = postp - smptp; if(j < 0 || (j&3)) return false;
j = orntp-16; if(j < 0) return false;
while(1) {
j2 = smptp+2-j;
@ -4816,49 +5127,6 @@ if(!bDetected && Binary.isDeepScan() && isFLS()) {
if(Binary.isVerbose()) sOption = "sz:"+sz
}
function isComposer670() {
// from https://github.com/OpenMPT/openmpt/blob/master/soundlib/Load_c67.cpp
if(File.getSize() < 1954+1024) return false; //7A2+400 = BA2
spd = File.read_uint8(0);
if(!spd || spd > 15) return false;
ord = 0;
for (i=0; i < 256; i++) { // check orders
o = File.read_uint8(1698+i);
if(o >= 128 && o != 0xFF) return false;
if(o > ord && o != 0xFF) ord = o;
}
ord++;
nonz = false;
for (i=0; i < 32; i++) { // checking sample records
_z = File.read_uint8(2+i*13+12); if(_z) return false;
_t = File.read_uint32(0x1A2+i*16,_LE); if(_t) return false;
_l = File.read_uint32(0x1A2+i*16+4,_LE); if(_l > 0xFFFFF) return false;
_ls = File.read_uint32(0x1A2+i*16+8,_LE);
_le = File.read_uint32(0x1A2+i*16+12,_LE);
_z = File.read_uint8(0x3A2+i*13+12); if(_z) return false;
if(File.read_uint8(0x542+i*11) & 0xF0) return false;
if(File.read_uint8(0x542+i*11+5) & 0xFC) return false;
if(File.read_uint8(0x542+i*11+10) & 0xFC) return false;
if(_l && _le < 0xFFFFF) if(_le > _l || _ls > _le) return false;
if(!nonz && (_l || !Binary.compare("00000000 00000000 000000",0x542+i*11)))
nonz = true;
}
if(!nonz) return false;
malformed = false;
for (i=0; i < 128; i++) { // checking patterns
ptnofs = File.read_uint32(0x7A2+i*4,_LE);
ptnlen = File.read_uint32(0x9A2+i*4,_LE);
if(ptnofs > 0xFFFFFF || (File.getSize() < 0xBA2+ptnofs+ptnlen))
return false;
}
if(!malformed) malformed = (ptnlen < 3 || ptnlen > 0x1000);
return true
}
if(!bDetected && Binary.isDeepScan() && isComposer670()) {
sName = "CDFM/Composer 670 module (.C67)"; bDetected = 1;
if(malformed) sVersion = "malformed";
if(Binary.isVerbose()) sOption = "spd:"+spd+" ord:"+ord
}
//the followng signature detectors seem shaky to me [Kae] so they're heuristic and in parallel
@ -4867,6 +5135,9 @@ if(!bDetected && Binary.isDeepScan() && isComposer670()) {
if(Binary.isHeuristicScan()) { //parallel block
// Let's start with just judging by the extensions:
if(extIs("bmf")) {//TODO
_setResult("audio","The Brain's Easy Adlib 1.0 chiptune (.BMF)","","")
}
if(extIs("dln")) { //TODO
_setResult("audio","Dave Lowe New module (.DLN)","","")
}
@ -4876,11 +5147,6 @@ if(Binary.isHeuristicScan()) { //parallel block
else if(extIs("mok")) { //TODO
_setResult("audio","Silmarils module (.MOK)","","")
}
else if(extIs("puma")) { //TODO
if(Binary.isVerbose())
_setResult("audio","Pumatracker module (.PUMA)","",File.read_ansiString(0,0x0C).trim());
else _setResult("audio","Pumatracker module (.PUMA)","","")
}
else if(extIs("imf") || extIs("wlf")) { //a detector is quite impossible to produce...
if(extIs("imf"))
freq = "560Hz (or 280Hz if Duke Nukem II)";
@ -4919,19 +5185,8 @@ if(Binary.isHeuristicScan()) { //parallel block
&& Binary.compare("'2a'0C'I'FA",0x21) && Binary.compare("'Ff'EE'J@g'06')K'",0x45)) {
_setResult("audio","Quartet PSG module (.SQT)","","")
}
else if(Binary.compare("0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F0000050F", 0x14)
&& Binary.compare("FFFF001000000030000000", 0x181)) {
bDetected = 1;
sName = "The Musical Enlightenment module (.TME)"
}
//these are compares at 0, so they can be non-parallel, to optimise it all
if(Binary.compare("4EFA....4EFA....4EFA....4EFA")) {
_setResult("audio","FredMon module (.FRED)","","")
}
else if(Binary.compare("4EFA....4EFA....4EFA")) {
_setResult("audio","Maniacs of Noise module (.MON)","","")
}
if(Binary.compare("8400")) {
if(File.read_uint8(2) == 0xF0) sversion = "adv."; else sversion = "";
_setResult("audio","Sierra Adlib chiptune (.SCI)",sversion,"")
@ -4939,9 +5194,12 @@ if(Binary.isHeuristicScan()) { //parallel block
else if(Binary.compare("AE")) { //TODO
_setResult("audio","Polly Tracker module (.MOD)","","")
}
else if(Binary.compare("'MMME'") || Binary.compare("'TFMX'")) {
else if(Binary.compare("'MMME'") || Binary.compare("'TFMX'")
|| Binary.compare("60..60..48E7") || Binary.compare("60..60..41FA")
|| Binary.compare("6000....6000....48E7") || Binary.compare("6000....600...6000...6000....48E7")) {
_setResult("audio","Jochen Hippel's ST module (.SOG)","","")
}
else if(Binary.compare("1C52")) {
_setResult("audio","Sound Interface System module (.LEM)","","")
}
@ -4953,12 +5211,6 @@ if(Binary.isHeuristicScan()) { //parallel block
_setResult("audio","NovoTrade Packer module (.NTP)","",File.read_ansiString(4,16));
else _setResult("audio","NovoTrade Packer module (.NTP)","","")
}
else if(Binary.compare("00'@'7F'@'00C081C0FF")) {
_setResult("audio","Rob Hubbard ST module (.RHO)","","")
}
else if(Binary.compare("4EFA00")) {
_setResult("audio","Sonic Arranger module (.SA)","","")
}
else if(Binary.compare("'Ice!'") || Binary.compare("'ICE!'")) {
//TODO find a sanity check to narrow it down, then move it to the other sanities
_setResult("audio","Atari ST chiptune (.SNDH)","compressed","")
@ -5011,20 +5263,9 @@ if(Binary.isHeuristicScan()) { //parallel block
&& Binary.compare("2BFF", 0x1D9) && Binary.compare("000667", 0x4D4)) {
bDetected = 1; sName = "Sound Master II module (.SM3)"; sVersion = "v3"
}
else if(Binary.compare("60...... 60...... 60...... 60")) { //TODO
_setResult("audio","Rob Hubbard module (.RH)","","")
}
else if(Binary.compare("60...... 60...... ....60")) { //TODO
_setResult("audio","Ben Daglish's module (.BD)","","")
}
if(!bDetected && Binary.isHeuristicScan() && isADL()) {
sName = "ADL AdLib module (.ADL)"; bDetected = 1;
switch(nV) {
case 1: sVersion = "v1"; break;
case 3: sVersion = "v2/v3"; break;
case 4: sVersion = "v4"
}
}
function isMXDRVPDX() {
// the format is very very very basic so .ADL overlaps happen
@ -5143,6 +5384,26 @@ if(!bDetected && Binary.isHeuristicScan() && isADL()) {
_setResult("audio","SQ Digital Tracker module (.SQD,.M)","",soption)
}
function isFredMon() {
//ref https://zakalwe.fi/uade/uade3/uade-3.03.tar.bz2 / uade/src/frontends/common/amifilemagic.c
if(!Binary.compare("4EFA....4EFA....4EFA....4EFA")) return false;
for (i = 0x10; i < 256; i += 2)
if (Binary.compare("4E7547FA ........ ........ 4E75",i)) return true
return false
}
if(Binary.isDeepScan() && isFredMon()) {
_setResult("audio","FredMon module (.FRED)","","")
}
function isMON() {
if(!Binary.compare("4EFA....4EFA....4EFA")) return false;
var t = File.read_uint16(2,_BE); if (t > File.getSize() - 9) return false;
return Binary.compare("4BFA.... 08AD 0000",t+2)
}
if(Binary.isDeepScan() && isMON()) {
_setResult("audio","Maniacs of Noise module (.MON)","","")
}
} //isHeuristicScan parallel block
return result(bShowType,bShowVersion,bShowOptions);

View file

@ -1,14 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("archive","btoa");
function detect(bShowType,bShowVersion,bShowOptions)
{
var sStr=Binary.getString(0,11);
if(sStr=="'xbtoa Begin'")
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,26 +0,0 @@
// DIE's signature file
init("archive","bzip");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=9)
{
if(Binary.compare("'BZ0'"))
{
sVersion="1";
bDetected=1;
}
else if(Binary.compare("'BZh'"))
{
sVersion="2";
bDetected=1;
}
if(bDetected)
{
sOptions="block-size:"+Binary.getString(3,1)+"00 kb";
}
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,30 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","$pirit");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$b430cd21f6d12ea6e8....b462cd21e8....3636fb969034..c3"))
{
sVersion="1.x";
bDetected=1;
}
else if(Binary.compare("e9$$$$aee8$$$$e4210c..fbe62190b8....fb5026509087c1"))
{
sVersion="1.5";
bDetected=1;
}
else if(Binary.compare("e9$$$$369f9f1c..e9$$$$e8$$$$e421f80c..e6218d06....fc505089c1fb"))
{
sVersion="1.5";
bDetected=1;
}
else if(Binary.compare("e9$$$$f8d72606b435cd2107e8$$$$1c..1c..33d226f6da12ddfcf905....f8f5f6ea"))
{
sVersion="1.5";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","32-bit crypt");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("6633c9678a81........34..2c..34..678881........6683c1..6681f9........75"))
{
sOptions="by SWW //DiGiTAl FaCToRY";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","4kZIP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("fcb1..e8$$$$8736....b8....d3e0482306....66d32e....280e....77..506633c0ac8a0e....80c1..66d3e0"))
{
sOptions="by pascal //Digital Nightmare";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","8086 Forth 83");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$8cc88ed88ed08ec0a1....b0..a3....2d....a3....2d....8be8bb....031e....892f2d....a3....bb....031e....89078be0be....e9"))
{
sVersion="2.1.0";
sOptions="1985";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","A3E (text2com)");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("1e33c050be....81c6....b8....8ec0bf....b9....f3a5cb"))
{
sOptions="1992 by JHSoft";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","ABK-Scrambler");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b430cd2186e03d....73..cd209c06b8....50cf"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,50 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","A.C.E. Scrambler");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("2c..fec024..34..fec824..34..bb....0c..eb$$24..0c..81eb....f6d8eb$$2c..fec0ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("24..0c..f6d8eb$$fec8bb....04..0c..f6d804..fec0f6d881eb....24..f6d8fec034..0c..04..2c..ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("34..fec834..0c..24..04..fec0bb....0c..2c..0c..81eb....eb$$fec0f6d82c..fec0f6d80c..ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("24..fec82c..bb....fec8f6d8eb$$04..81eb....0c..fec0fec80c..34..ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("24..eb$$04..bb....f6d834..fec8fec0eb$$0c..81eb....34..24..34..eb$$ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("34..fec804..24..0c..04..bb....0c..04..f6d881eb....0c..fec8f6d824..0c..ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("f6d834..2c..bb....0c..34..fec004..34..fec004..81eb....2c..34..24..eb$$04..2c..04..ffe3"))
{
sOptions="1996";
bDetected=1;
}
else if(Binary.compare("fec0eb$$24..34..bb....f6d834..fec024..fec0f6d834..81eb....f6d80c..eb$$04..ffe3"))
{
sOptions="1996";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","ACiDDRAW");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$b8....cd10b4..b9....cd10e8....ba....90e8....3d....75..e9....3d....75..e9....3d....75..e9....3d....75..eb"))
{
sVersion="1.2";
bDetected=1;
}
else if(Binary.compare("eb$$b8....cd10b4..b9....cd10e8....ba....90e8....3d....75..e9....3d....75..e9....3d....75..e9....3d....75..eb"))
{
sVersion="1.2";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,21 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","ANS2ALL");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e8$$$$b8....cd103c..75..80fb..73..58b8....cd21fcb8....8ec0be....bf....b9....f3a4fa"))
{
sVersion="1.3";
sOptions="by ZeroCoder //XG";
bDetected=1;
}
if(Binary.compare("e9$$$$2bc9b6..b2..b7..b4..cd212ad22af6b7..b4..cd10b6..32d2b7..b4..cd101e33c050"))
{
sOptions="by ZeroCoder //XG";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,33 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","ASC2COM");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e8$$$$33c0cd333d....75..c606......b8....cd338916....c3"))
{
sVersion="2.02";
sOptions="1992 by MorganSoft";
bDetected=1;
}
else if(Binary.compare("e8$$$$e8$$$$b401b7..b9....cd10c3f8bb....8b073d....75..c3"))
{
sVersion="1.10B";
sOptions="1989 by MorganSoft";
bDetected=1;
}
else if(Binary.compare("e9$$$$e8$$$$50535157bb....803f..74..33c98a0f438bfbb8....e3"))
{
sVersion="2.01 Compressed";
sOptions="1992 by MorganSoft";
bDetected=1;
}
else if(Binary.compare("e9$$$$e8$$$$e8$$$$b4..b7..b9....cd10c3"))
{
sOptions="1989 by MorganSoft";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,22 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","ASIC-Basic");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$33dbb4..cd108916....cc90b0..ba....33c9b7..b4..cd1031d28916....b4..30ffcd1090"))
{
sVersion="5.0";
sOptions="1994 by David Visti of 80/20 Software";
bDetected=1;
}
else if(Binary.compare("e9$$$$33dbb4..cd108916....cc90fcb9....be....bf....f3a490fcb9....be....bf....f3a4"))
{
sVersion="3.0";
sOptions="by David Visti of 80/20 Software";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","AVAST-Protect");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$8cc82e0306....502eff36....cb"))
{
sOptions="1999 by P.Baudis";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","AVPACK");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$8cda0316....3916....73..b409ba....cd21c3"))
{
sVersion="1.22";
sOptions="Andrei Volkov";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,21 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","AdFlt");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("68....9c0fa00fa860fd6a..0fa1be....ad6664ff36....648b16....643106....6664ff36....648916....adff36"))
{
sVersion="2.0";
sOptions="by EliCZ";
bDetected=1;
}
else if(Binary.compare("9c0fa06660fd6a..0fa1be....ad6664ff36....648b16....668f06....643106....6664ff36....648916....668f06....adff36"))
{
sOptions="by EliCZ";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Anti-Lamer Cryptor");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$fa8cd3ba....8ed233d28ed38bdafb33c08ec026f716....eb"))
{
sVersion="1.0";
sOptions="1999 by Ozzman //iHC";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Anti-hack encryption system");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$bd....33c08ec026c706........268c0e....8b46..26a3....268c0e....0e07"))
{
sOptions="by Rezaul Kabir //Shuvro";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","AutoCracker");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e8$$$$be....e8$$$$5133c9ac3c..74..32c8d1e1b4..8ad03c..74..cd21eb"))
{
sVersion="1.x";
sOptions="1997 Dmitry Gorshkov";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,22 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","BAT2EXEC");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$fcbd....8b....8b......8b......b44acd21a1....8986"))
{
sOptions="by Douglas Boling";
sVersion="1.5";
bDetected=1;
}
else if(Binary.compare("fcbd....8b....8b......8b......b44acd21a1....8986"))
{
sOptions="by Douglas Boling";
sVersion="1.2";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","BAT2EXEC");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$fcbd....8b....8b......8b......b44acd21a1....8986....8b9e....ffe3"))
{
sVersion="1.5";
bDetected=1;
}
else if(Binary.compare("fcbd....8b....8b......8b......b44acd21a1....8986....8b9e....ffe3"))
{
sVersion="1.2";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","BatLite");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$e8....bb....8bf3031e....891e....81fb....73..bb....8bfb891e....031e....81c3....8be3b1..d3eb43"))
{
sVersion="1.5";
sOptions="1991-92 by Pieter A. Hintjens";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Best Protection Kit-B");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$fc8c06....e421a2....b0..e621fb33c08ed08be0be....8d3e....b9"))
{
sOptions="1993 by Eric Zmiro";
bDetected=1;
}
else if(Binary.compare("eb$$fc8c06....e421a2....b0..e621fbf433c08ed08be0be....8d3e....b9"))
{
sOptions="1992 by Eric Zmiro";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","Borland C++");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("8cca2e8916....b430cd218b2e....8b1e....8edaa3....8c06....891e....892e....e8....a1....8ec033c08bd88bf8b9....fcf2aee3"))
{
sOptions="1991";
bDetected=1;
}
else if(Binary.compare("8cca2e8916....b430cd218b2e....1e2c..daa3....8c06....891e....892e....e8....a1....8ec033c08bd88bf8b9....fcf2aee3"))
{
sOptions="1991";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Budokan");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("bf....b9....8bc1fd3305abe2..e9"))
{
sOptions="by Electronic Arts, Inc.";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","C-crypt");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e800005d83ed..55d9d09c5825....509d5057bf....b0..aa5f58665166b9........cc"))
{
sVersion="1.02";
sOptions="by De'FeinD //uCT";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CC#3");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e800005d33db8bc3bf....893f81c3....532eff36....1f1e568d76..8bfbb9....f2a4c6"))
{
sOptions="by ZeroCoder //XG";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,28 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CC");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b8....ba....3be073..b409ba....cd21b8....cd218bdc81eb....83e3..fcbe....8bfbb9....f3a48bc3b1..d3e88cc903c15033c050cb"))
{
sVersion="1.0";
sOptions="1991 by B.Vorontsov";
bDetected=1;
}
else if(Binary.compare("ba....b430cd213c..73..33c00650cbb9....b8....eb$$05....fc80c4..eb"))
{
sVersion="2.61 Beta";
sOptions="by UniHackers";
bDetected=1;
}
else if(Binary.compare("e9$$$$b9....be....8bfe5156b4..ac32c4c0c4..02e1aae2..bf....5e59f3a4be....56c3"))
{
sVersion="1.01";
sOptions="by B.Vorontsov";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CC286x2");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$eb$$e800005d81ed....eb$$bf....eb$$b0..eb$$e664eb$$b0..eb$$aaeb$$4f8d9e....eb$$538bdf"))
{
sVersion="2.1";
sOptions="by Dark Stalker //UCF";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CCC");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e800005b8b4c..501736890e....8b47..1347..3347..2b47..36a3....83c6..b9....8b7f..037f..ac363006"))
{
sOptions="by ZeroCoder //XG";
bDetected=1;
}
else if(Binary.compare("e9$$$$e800005b8b4c..501736890e....8b47..3347..36a3....83c6..b9....8b7f..037f..ac363006"))
{
sOptions="by ZeroCoder //XG";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CHECKPRG");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("33c0be....8bd8b9....bf....ba....474a74..ac320503d8e2"))
{
sOptions="1992 by Jordi Mas Hernandez";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CNT");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("'CNT'58e8$$$$5e8b4c..bf....ac3306....3306"))
{
sOptions="by C0NTRiVER";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","COM Sccrambler");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$fcbe....8bfeb9....515657b4..04..ac90902ac432c4aae2..5f5e5903f183ee..a5a4b8....5083eb..33c9"))
{
sVersion="0.1";
sOptions="1995 by Moshe";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","COM-Protect");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$8b1e....83eb..b8....5053b430cd215b9ceb"))
{
sOptions="1995 by Mr.Wicked";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","COM-Protection");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$eb$$86c08ec086dbeb$$05....87db8b2e....97eb$$aaaaeb$$aaaaeb$$bb....03ddb9....03cd87cbb8"))
{
sOptions="by JAM //UCF";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","COM2TXT");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("'XP5~~-~}P]XP-@?->@1Fq1Fx0F6,00F7,b(F8ZRu(XP2FzE,@r42fzWBxG!='"))
{
sOptions="1997 by GyikSoft";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,24 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","ComCrypt");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$b9....be....89f70e1f0e07bb....fcad31d8abe2"))
{
bDetected=1;
}
else if(Binary.compare("e9$$$$eb$$5053575152061e572e8b36....81c6....8a5c..2e881e....8a5c"))
{
sVersion="1.0b";
bDetected=1;
}
else if(Binary.compare("e9$$$$b9....be....89f7fcac04..aae2..b8....bf....abb0..aab8....5033c0c3"))
{
sOptions="1997 by HPA"
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,46 +0,0 @@
// DIE's signature file
init("packer","COMPACK");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("BE....E8....5D83C5..55505351520E070E1F8BCE8D72..BF....D1E9FD57F3A5"))
{
sVersion="4.5";
bDetected=1;
}
else if(Binary.compare("BE....E8....5D83C5..55505351520E070E1F8D72..bf....b9....90fd57f3a58d75..fcf98bfdc3"))
{
sVersion="4.5?";
bDetected=1;
}
else if(Binary.compare("BE....E8....5D83C5..555053510E070E1F8BCE8D72..BF....D1E9FD57F3A5"))
{
sVersion="5.1";
bDetected=1;
}
else if(Binary.compare("BE....E8....5D83C5..550e1f0e07505351528bce8d72..bf....d1e9fd57f3a58d75..fcf98bfdc3"))
{
sVersion="4.5";
bDetected=1;
}
else if(Binary.compare("be....0e530e520e070e1fe800005d8bce8d72..bf....d1e9fd57f3a58d75..fcf98d7e..c3"))
{
sVersion="4.4";
sOptions="1990";
bDetected=1;
}
else if(Binary.compare("be....505351520e070e1fe800005d8bce8d72..bf....d1e9fd57f3a58d75..fcf98d7e..c3"))
{
sVersion="4.4";
sOptions="1990";
bDetected=1;
}
else if(Binary.compare("BE....E8....5D83C5..558bce8d72..bf....d1e9fd57f3a58d75..fcf98bfdc3"))
{
sVersion="4.5?";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","COMPROTECT (RCP)");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b8....15....72..8ac4bb....50515253555657061e50b8....58eb"))
{
sVersion="2.10";
sOptions="1988-95 by Ralph Roth";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","COP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("bf....be....b9....ac3206....aae2"))
{
sVersion="1.0";
sOptions="by Jack A. Orman";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("immunizer","Central Point Anti-Virus immunizer");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e9$$$$e8$$$$5b81eb....5051525657558beb2ec686......268e06....061fb9....bf....8bc7fcf2ae26803d..75"))
{
sVersion="1993";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","CRX2COM");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$8b1e....c1....81c3....e8....b4..ba....cd21bb....e8....b4..ba....cd21b8....ba....cd2173"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","Character Intro Engine");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$2e8b26....81c4....2ea1....2ea3....0e588ec08ed88bdc83c3..b1..d3eb43b4..cd21fc"))
{
sOptions="by //UCF";
bDetected=1;
}
else if(Binary.compare("e9$$$$2e8b26....81c4....0e588ec08ed88bdc83c3..b1..d3eb43b4..cd21fc"))
{
sOptions="by //UCF";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","Cheat packer");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$b9....ba....bf....bb....b8....be....83ec..8becfc8866..32e48976..8bf703c18bf83bfe76..fd574e4f"))
{
sOptions="1993 by TWIN of TRSi";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CodeLock");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$bb....535856535981e9....31ff575a5dbe....e9"))
{
sVersion="4.0";
sOptions="1993 by Dr. Detergen";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","ComProt");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e800005e8bee81ed....8db6....b9....f61446e2"))
{
sVersion="1.0b";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,22 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","ComProtector");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$b9....bb....bf....2e8a0734..fec8c0c0..2e88052e000d2e002d4743e2"))
{
sVersion="1.0";
sOptions="1998 by Marco Ruhmann";
bDetected=1;
}
else if(Binary.compare("e9$$$$b9....e800005b83c3..90fa8bd48be133c02e030e....2ec007..0f23f82e2b0e....2e300f0f23d8"))
{
sVersion="1.1";
sOptions="1998 by Marco Ruhmann";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,21 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Comlock");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$eb$$bb....be....81c6....03f3bf....b9....f3a42e8a87....be....8bc82e300446ffc0e2"))
{
sVersion="0.10";
sOptions="by Trouble Makers";
bDetected=1;
}
else if(Binary.compare("e9$$$$eb$$bb....be....81c6....03f3bf....b9....f3a42e8a87....8bcbbe....2e3004fec046e2"))
{
sVersion="0.1x";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CrAcKeR");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$be....8bfe5633c0be....ac02e081fe....72..5eac34..aa81fe....72"))
{
sVersion="0.2a";
sOptions="by Deu$";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","CRacK2EXE/486");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b9....bf....8035..47e2..be....8034..46803c..75..be....e8....be....e8....be....e8....bd"))
{
sVersion="0.02 Alfa";
sOptions="1996 by Professor Nimnul";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Crypt by Dismember");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("0E179C58F6C4..74..EB..90B4..BE....BF....B9....68....68....68....57F3A4C3"))
{
sVersion="1.7";
bDetected=1;
}
else if(Binary.compare("e9$$$$bf....8bf7acad918ae157ac32c4f6d0d0c412e1aae2"))
{
sVersion="2.0";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,22 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CryptCom");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$be....56b9....c704....c644....8134....4646e2..31f631c9c3"))
{
sVersion="2.0";
sOptions="by Nowhere Man";
bDetected=1;
}
else if(Binary.compare("bf....57be....90b9....f3a4c3"))
{
sVersion="1.1";
sOptions="by Frank Baumgartner";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,14 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","CryptGeneric");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$b430cd2180fc..72..90e9....90bb....81c3....53b0..04..51b9....e9"))
{
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","CyberWare Packer");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("565056fd8bfc83ef..b9....be....fea447ffe7"))
{
sOptions="1997";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","DCFR");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b8....ba....3bc4eb$$72$$5250b9....bb....8b0733c140890743e2"))
{
sVersion="0.0.4";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("driver","DIGPAK");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$8cc88ed88ec0e8$$$$1e56be....33c08ed8c5340bf674"))
{
sOptions="1992 by The Audio Solutions";
bDetected=1;
}
else if(Binary.compare("e9$$$$8cc88ed88ec0c706........c706........c706........b8....50e8$$$$558bec061e5657fc"))
{
sOptions="1991 by The Audio Solutions";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","DOC2COM");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("fc8b0e....498b36....8bfeac3204aae2"))
{
sOptions="by Jerry DePyper";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("self-displayer","DOC2PAGE");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$fc8a0e....32ede3..bf....b0..f3ae74..e8....ba....cd21ba....cd21e9"))
{
sOptions="by Th. Edel";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,18 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","DS-CRP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("b8....50c3"))
{
var nOffset=Binary.readWord(1)-256+8;
if(Binary.compare("e800005d81ed....9c32e4509d9c5880e4..80fc..74..b4..509d9c5880e4..74..9deb",nOffset))
sVersion="1.30";
sOptions="by Dark Stalker //UCF";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("compiler","Datalight/Northwest C");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("eb$$fab8....b9....d3e88cc903c18ed88c06....8bd82b1e....891e....268b1e....2bd881fb....72..bb....8bd003d342b1..d3e38ed08be381eb....81fb....77"))
{
sVersion="3.10 S";
sOptions="by Walter Bright";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Deep Crypter");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("90e9$$$$e80000598be981ed....81e9....be....8dbe....668b056689048dbe....8bd78bdf83c3..8a043205f6d0"))
{
sVersion="0.1b";
sOptions="by PLasMoiD";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","Deeper");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("90e9$$$$e8000059fa8bdc36c747......36837f....75..fb66fafb8be981ed....81e9....be....8dbe....668b05668904"))
{
sVersion="1.0c";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,36 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","Diet");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("bf....3bfc72$$fdbe....b9....f3a5fc8bf7bf....adad8be8b2..e9"))
{
sVersion="1.00";
sOptions="modified";
bDetected=1;
}
else if(Binary.compare("bf....3bfc72$$be....b9....fdf3a5fc8bf7bf....adad8be8b2..e9"))
{
sVersion="1.00, 1.00d";
bDetected=1;
}
else if(Binary.compare("......bf....b9....3bfc72$$fdf3a5fc8bf7bf....adad8be8b2..e9"))
{
sVersion="1.02b, 1.10a";
bDetected=1;
}
else if(Binary.compare("......bf....b9....3bfc72$$31dbeb$$fdf3a5fc8bf7bf....adad8be8b2..e9"))
{
sVersion="1.20";
bDetected=1;
}
else if(Binary.compare("f99ceb$$55061e575652515350e8$$$$59b1..d3e98cc803c18ed88ec0"))
{
sVersion="1.44/1.45";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("packer","Dn.COM Cruncher");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("33dbb5..8bf98be9be....57f3a4bf....c3"))
{
sVersion="1.2";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","E2C-Scrambler");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$fabc....c1ea..8ccd03ea8ec5bf....be....b9....bb....fdac320702c1d2c002c5aa4381fb....75..bb....e2"))
{
sOptions="1999 by Amokk //FTW";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","E2C (EXE2COM) by The DoP");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("be....bf....b9....57f3a5c3"))
{
sVersion="1.00-1.02";
bDetected=1;
}
else if(Binary.compare("be....bf....b9....fc57f3a5c3"))
{
sVersion="1.02a";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,15 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","E2C protection");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("bc....33c050b8....50ba....b8....cd21b8....cd21bf....be....b9....9081ff....74..8a050204aa46e2..eb"))
{
sOptions="1990 by Erik Labs";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,16 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","EPW");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$06571e565552515350bb....81c3....2e8b078ccb03c305....50b8....50cb"))
{
sVersion="1.2";
sOptions="by Aland D. Jones";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,108 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","EXE2COM");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$bf....be....a5a48cda83c2..50b9....ad970115e2"))
{
sVersion="1.0";
sOptions="by D'B";
bDetected=1;
}
else if(Binary.compare("e9$$$$e800005b508cc005....8b0e....03c889....8b0e"))
{
sVersion="1.0";
sOptions="by Microsoft";
bDetected=1;
}
else if(Binary.compare("b3..b9....33d2be....8bfeac32c3aa434932e403d0e3..eb..3b16....75..be....8bc6b1..d3e88cdb03c30344..a3....8cc805"))
{
sOptions="CRC check";
bDetected=1;
}
else if(Binary.compare("e8$$$$bf....be....a5a48cda83c2..0116....81c2....8ed2bc....eb"))
{
sOptions="by //ViP";
bDetected=1;
}
else if(Binary.compare("e9$$$$bf....be....a5a48cda83c2..50b4..bb....cd21580116....81c2....8ed2"))
{
sOptions="0-Relocs by dR.No //ViP";
bDetected=1;
}
else if(Binary.compare("e9$$$$bf....be....a5a48cda83c2..0116....81c2....8ed2bc....eb..ea"))
{
sOptions="0-Relocs by Sage //UCF";
bDetected=1;
}
else if(Binary.compare("e9$$$$e800005b81eb....8db7....bf....b9....f3a58db7....538ccf83c7..ad"))
{
sVersion="2.0";
sOptions="by Paul Shpilsher";
bDetected=1;
}
else if(Binary.compare("e9$$$$8cca81c2....3b16....76..ba....b409cd21cd20"))
{
sOptions="generic, type 1";
bDetected=1;
}
else if(Binary.compare("be....8b043d....74..ba....b409cd21cd208bc6b1..d3e88cdb03c303....a3....8cc805....a3....8b44"))
{
sOptions="by RaskY";
bDetected=1;
}
else if(Binary.compare("bf....be....b9....fcf3a4068ccb83c3..011e....011e....b9....8b54..03d381c2....8ec28b3c"))
{
sVersion="1.0";
sOptions="by Milkov";
bDetected=1;
}
else if(Binary.compare("bf....be....b9....fcf3a48ccb011e....011e....eb00bf....be....b9....bb....bd....fa"))
{
sVersion="1.0";
sOptions="by Milkov";
bDetected=1;
}
else if(Binary.compare("eb$$be....8bc6b1..d3e88cdb03c30344..89048cc805....8be88b44..b1..d3e803c50344..bb....8b1f"))
{
sOptions="by JauMing Tseng";
bDetected=1;
}
else if(Binary.compare("e8$$$$bf....be....a5a48cda83c2..50b4..bb....cd21b9....ad970115e2"))
{
sVersion="1.0d";
sOptions="1994 by D'B";
bDetected=1;
}
else if(Binary.compare("e9$$$$92be....bf....fca5a48ccb83c3..b9....ad97011de2"))
{
sOptions="1996 by EM-Phaser";
bDetected=1;
}
else if(Binary.compare("b430cd213c..73..33c00650cb"))
{
sOptions="by JVP";
bDetected=1;
}
else if(Binary.compare("bf....be....b9....f3a48cd805....0344..8ccb9305....8be60364..8b4c..e3..5f5a"))
{
sName="CC";
sVersion="2.61 beta";
sOptions="EXE2COM";
bDetected=1;
}
else if(Binary.compare("e8$$$$bf....be....a5a48cda83c2..50b4..bb....cd21580116....81c2....8ed2bc....eb"))
{
sOptions="by unknown";
bDetected=1;
}
else if(Binary.compare("e9$$$$e9$$$$8cca81c2....3b16....76..ba....b409cd21cd20"))
{
sOptions="generic, type 2";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,20 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("converter","EXETools EXE2COM");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("e9$$$$e800005d8bcd83ed..bf....be....2bcff3a4b9....be....03f5e3..8cdb035e..ad8bf8011de2"))
{
sVersion="2.0, 2.1";
bDetected=1;
}
else if(Binary.compare("68....68....68....68....68....68....5fbe....b9....f3a4c3"))
{
sOptions="com header from EXETools 2.1";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

View file

@ -1,30 +0,0 @@
// DIE's signature file
// Author: hypn0 <hypn0@mail.ru>
init("protector","EXETools by Dismember");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.compare("68....68....68....be....bf....57b9....f3a4c3"))
{
sVersion="2.1 /E";
bDetected=1;
}
else if(Binary.compare("e9$$$$e800005d8bcd83ed..bf....be....2bcff3a4b9....be....03f5"))
{
sVersion="2.1";
bDetected=1;
}
else if(Binary.compare("68....bf....8bf757b9....51b4..ac32c4c0c4..02e102f0aae2..33c0595e5f57eb"))
{
sVersion="2.0";
bDetected=1;
}
else if(Binary.compare("68....68....68....be....bf....57b9....f3a4c3"))
{
sVersion="2.1 /E";
bDetected=1;
}
return result(bShowType,bShowVersion,bShowOptions);
}

Some files were not shown because too many files have changed in this diff Show more