Tools written by Roy/SAC

FileType Detector 1.1

   Back to List of Tools Written by Roy/SAC

Introduction

A free experimental tool that tries to determine the type of binary file based on defined binary signatures. Over 150 file types already defined out of the box and it's easy to extend it for additional file-types, if you want to. This little tool was Written in VBScript and source code is included for reuse or expansion.

Tool Summary

Tool Name
Current Version
Platform
Programming Language Used
Short Description
Latest Version Download

Please Note! ... that all of my tools posted on my web site are using the Free Art License (FAL) 1.3 (Copy left Attitude), which means its free to use, share and even modify and redistribute, as long as your modified version is still free and not commercially distributed. If you want to exploit the software commercially, you would have to contact me and negotiate terms.

Needless to say, but better safe than sorry.... using my tools does not make me liable for any direct or indirect caused damages or losses, because of the use of them. You use them at your own risk. If you are paranoid, don't use them, if you are not understanding what I am saying here, don't use them either.

 

Screenshots

Browse for Folder Program Options
Work Window Final Results

 

What the Hell is This?

A tool that finds out what type of file it is, based on binary signatures. Adding the proper file extension to recognized files. The reason for writing such a tool was the lack of correct file extensions (or the lack of them alltogether) when the files came originally from a Commodore Amiga system.

Any kind of image could be called ".image" or ".pic" without providing real clues about the actual format, like IFF or TIF etc.

 

The Definitions Format

Definitions must be put into the "DEFS" sub folder and a text file with the extension .INI. The Definitions files have following structure.


					[FileType]
					Extension=<EXT>
					Description=<Description/Name of the Format>
					ChecksCount=<NUM>

					[Check<NUM>]
					Start=<X>
					Length=<X>
					BytesH=HX HX HX HX
					BytesS=<STRING>
					

Header Section "[FileType]"

Parameter Options/Description
Extension = <STRING> - The File Types Extension (without the ".")
Description = <STRING> - The Name and/or short Description of the File Type
ChecksCount = <NUM> - Number of Checks, must be 1 or greater.

Depending on the value "NUM" for "ChecksCount", "NUM" x "Check" Sections are Expected

[Check1], [Check2] ... [CheckNUM].

The logical relationship between multiple checks is AND, meaning ALL of the checks have to be TRUE in order to be a match for the File Type.

Check Section "[CheckN]"

Parameter Options/Description
Start = <NUM> - Offset, Start Position from the File Begin where to read the number of bytes defined by "length". Start=1 (and not Start=0) represents the first byte of the file
length = <NUM> - number of bytes to read
BytesH = <VALUE> - "length" x byte value. Each byte value is represented by a 2 characters hexadecimal string from 00 to FF. Individual byte values are separated by a single "Space" or "blank" character
- and/or -
BytesS = <STRING> - The check bytes as string value, without any spaces to separate the individual characters.

It is required to have either "BytesH" or "BytesS" defined as value to check. You can also define both, if you like. If both formats are defined, the "BytesH" (hex value) definition takes precedence over the string definition.

 

Example .INI File

Here is an Example of the definition of a .LWO, Lightwave Mesh Object file.


					[FileType]
					Extension=LWO
					Description=Lightwave Object
					ChecksCount=2

					[Check1]
					Start=1
					Length=4
					BytesH=46 4F 52 4D
					BytesS=FORM

					[Check2]
					Start=9
					Length=8
					BytesS=LWOBPNTS