mirror of
https://github.com/horsicq/Detect-It-Easy.git
synced 2026-06-24 01:54:08 +00:00
56 lines
1.5 KiB
Text
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());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|