カスタムファイルの種類の検出のスクリプト例

カスタムファイルの種類を検出するスクリプトソリューションの例をいくつか次に示します。これらの例は、カスタムスクリプトを記述したり、指定したカスタムファイルの種類を検出したりするための参考として使うことができます。
次のスクリプト例は、Microsoft Word のファイルの種類を検出します。
$Int1 = getHexStringValue('D0CF'); $Int2 = getBinaryValueAt($data, 0x0, 2); assertTrue($Int1 == $Int2); $Int3 = getHexStringValue('ECA5'); $Int4 = getBinaryValueAt($data, 0x200, 2); assertTrue($Int3 == $Int4);
次のスクリプト例は、CDD のファイルの種類を検出します。
$Int1 = getBinaryValueAt($data, 0x0, 4); $Int2 = getBinaryValueAt($data, 0x8, 4); assertTrue($Int1 == $Int2); $Int3 = getBinaryValueAt($data, 0x0, 2); $Int4 = getBinaryValueAt($data, 0x2, 2); assertTrue($Int3 != $Int4); $Last = getBinaryValueAt($data, 0x27, 1); $RecSep = getHexStringValue('1e'); assertTrue($Last == $RecSep);
次のスクリプト例は、CATIA のファイルの種類を検出します。
$Int1 = ascii('V'); $Int2 = getBinaryValueAt($data, 0x0, 1); assertTrue($Int1 == $Int2); $Int3 = ascii('CFV'); $Int4 = getBinaryValueAt($data, 0x3, 3); assertTrue($Int3 == $Int4);
次のスクリプト例は、EPUB のファイルの種類を検出します。
$slash=getHexStringValue('2f'); $epub1=ascii('epub'); $epub2=ascii('zip'); $slash1=getBinaryValueAt($data, 0xb, 1); assertTrue($slash == $slash1); $word1=getBinaryValueAt($data, 0xc, 4); assertTrue($word1 == $epub1); $word2=getBinaryValueAt($data, 0x11, 3); assertTrue($word2 == $epub2);
EPUB ファイルは ZIP ファイル形式でカプセル化された公開された形式 (XML) です。このスクリプトは File Type Analyzer ユーティリティではテストできません。これは、スクリプトが、(「mimetype」という名前の) マニフェストファイルに含まれる「application/epub+zip」文字列を検出するからです。ユーティリティはマニフェストを読み込むために ZIP ファイルをクラックすることができません。ただし、検出エンジンは ZIP ファイルをクラックしてマニフェストを読み込むことができます。このスクリプトを[カスタムファイル種類のシグネチャ]検出ルールのインスタンスに実装し、EPUB ファイルを検出できます。
次のスクリプト例は、Amazon Kindle のファイルの種類を検出します。
$book=ascii('BOOK'); $mobi=ascii('MOBI'); $word1=getBinaryValueAt($data, 0x3c, 4); $word2=getBinaryValueAt($data, 0x40, 4); assertTrue($book == $word1); assertTrue($mobi == $word2); $null=getBinaryValueAt($data, 0x3b, 1); assertTrue($null == 0); $nullx=getBinaryValueAt($data, 0x44, 1); assertTrue($nullx == 0);
次のスクリプト例は DRM (デジタル著作権管理) に使われる Oracle IRM のファイルの種類を検出します。
$soft=ascii('Soft'); $seal=ascii('SEAL'); $word1=getBinaryValueAt($data, 0x0, 4); $word2=getBinaryValueAt($data, 0x4, 4); assertTrue($soft == $word1); assertTrue($seal == $word2);
さらに、次の 2 つのチュートリアルではスクリプト言語のその他の例を示します。