Detect-It-Easy/db/MSDOS/UPX.2.sg
2014-07-10 00:25:14 +10:00

58 lines
1.3 KiB
Text

// DIE's signature file
init("packer","UPX");
function getUPXVersion(nSize)
{
var sResult="";
var nOffset=MSDOS.findString(0,nSize,"$Id: UPX");
if(nOffset!=-1)
{
sResult=MSDOS.getString(nOffset+9,4);
}
return sResult;
}
function detect(bShowType,bShowVersion,bShowOptions)
{
sVersion=getUPXVersion(Math.min(8192,MSDOS.getSize()));
if(sVersion!="")
{
bDetected=1;
}
else
{
if(MSDOS.compareEP("..............fcb430cd213c03"))
{
sVersion="3.X";
bDetected=1;
}
else if(MSDOS.compareEP("B9....BE....89F71EA9....8CC805....8ED805....8EC0FDF3A5FC2E........73..92AFAD0E0E"))
{
sVersion="0.82";
bDetected=1;
}
else if(MSDOS.compareEP("8CCBB9....BE....89F71EA9....8D......8ED805....8EC0FDF3A5FC"))
{
sVersion="0.20-0.60";
bDetected=1;
}
else if(MSDOS.isSignaturePresent(0,Math.min(128,MSDOS.getSize()),"'UPX!'"))
{
bDetected=1;
}
if(bDetected)
{
// Correct version for large files.
sUPXVersion=getUPXVersion(MSDOS.getSize());
if(sUPXVersion!="")
{
sVersion=sUPXVersion;
}
}
}
return result(bShowType,bShowVersion,bShowOptions);
}