Detect-It-Easy/db/ACE
2014-06-02 09:02:47 +02:00

56 lines
1.5 KiB
Text

// Detect an ACE archive.
// Author: Jason Hood <jadoxa@yahoo.com.au>
/*
Only tested with 2.04.
*/
includeScript("archive");
sName="ACE";
function detect_ACE(bFile,bShowOptions)
{
var nOffset,nSize;
if(bFile)
{
nOffset=0;
nSize=File.getSize();
}
else
{
nOffset=File.getOverlayOffset();
nSize=File.getOverlaySize();
}
if(nSize>48)
{
if(File.compare("'**ACE**'",nOffset+7))
{
bDetected=1;
sVersion="2";
if(File.readByte(nOffset+6)&0x80)
{
sOptions="solid";
}
if(File.compare("'UNREGISTERED'",nOffset+32))
{
sOptions=sOptions.append("unregistered");
}
if(bShowOptions)
{
// Not sure about this...
var nOffset=File.findSignature(nOffset+0x20,128,"000101");
if(nOffset!=-1)
{
nOffset-=3;
while(nOffset<File.getSize())
{
var nPacked=File.readDword(nOffset+7);
Archive.add(File.readDword(nOffset+11),nPacked,
File.readByte(nOffset+19)&16);
nOffset+=0x23+File.readWord(nOffset+0x21)+nPacked;
}
sOptions=sOptions.append(Archive.contents());
}
}
}
}
}