mirror of
https://github.com/horsicq/Detect-It-Easy.git
synced 2026-06-24 01:54:08 +00:00
Update file(s): 2023-10-30
This commit is contained in:
parent
627f2a16b0
commit
f0dcabc507
270 changed files with 441 additions and 8069 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
// DIE's signature file
|
||||
|
||||
includeScript("arj");
|
||||
|
||||
function detect(bShowType,bShowVersion,bShowOptions)
|
||||
{
|
||||
detect_ARJ(1,bShowOptions);
|
||||
return result(bShowType,bShowVersion,bShowOptions);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
init("archive","DotBundle Project");
|
||||
|
||||
function detect(bShowType,bShowVersion,bShowOptions)
|
||||
{
|
||||
if(Binary.compare("3C70726F6A6563743E0D0A20203C6D61696E65786520706174683D"))
|
||||
{
|
||||
bDetected=1;
|
||||
}
|
||||
|
||||
return result(bShowType,bShowVersion,bShowOptions);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue