Class: Binary

Binary

This is a description of the Binary class. This class is used when no other class matches.

new Binary()

Methods

(static) calculateEntropy(nOffset, nSize) → {Float}

Calculate the entropy of a region of the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes.
Returns:
Result in the form of quantity of bits per byte. Since there are 8 bits in a byte, the maximum entropy will be 8.0.
Type
Float

(static) calculateMD5(nOffset, nSize) → {String}

Calculate the MD5 hash of a region of the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes.
Returns:
MD5 hash.
Type
String

(static) compare(sSignature, nOffsetopt) → {Bool}

Compares bytes with a hexadecimal string signature.

The signature may contain both lowercase and uppercase hexadecimal digits. Spaces are skipped, and . and ? represent any digit.

Text may be matched by using single quotes. For example "01'Test'01".

There are two additional symbols:
# for absolute jump (e.g. "68########55");
$ for relative jump (e.g. "E8$$$$$$$$55").

Parameters:
Name Type Attributes Default Description
sSignature String The signature.
nOffset UInt <optional>
0 The offset in the file.
Returns:
Type
Bool
Examples
if(Binary.compare("'7z'BCAF271C")) // compare file header (nOffset=0)
{
    sVersion=Binary.readByte(6)+"."+Binary.readByte(7);
    bDetected=1;
}
if(Binary.compare("'WAVEfmt '",8)) // compare file from offset 8
{
    bDetected=1;
}

(static) findByte(nOffset, nSize, cValue) → {Int}

Search for a byte in the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to search.
cValue UChar The byte value.
Returns:
Offset in the file if the value is found; -1 otherwise.
Type
Int

(static) findDword(nOffset, nSize, nValue) → {Int}

Search for a dword in the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to search.
nValue UInt The dword value.
Returns:
Offset in the file if the value is found; -1 otherwise.
Type
Int

(static) findSignature(nOffset, nSize, sValue) → {Int}

Search for a signature (see compare) in the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to search.
sValue String The signature.
Returns:
Offset in the file if the signature is found; -1 otherwise.
Type
Int

(static) findString(nOffset, nSize, sValue) → {Int}

Search for a string in the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to search.
sValue String The string value.
Returns:
Offset in the file if the value is found; -1 otherwise.
Type
Int

(static) findWord(nOffset, nSize, sValue) → {Int}

Search for a word in the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to search.
sValue UShort The word value.
Returns:
Offset in the file if the value is found; -1 otherwise.
Type
Int

(static) getFileBaseName() → {String}

Get the base name of the file.
Returns:
Type
String

(static) getFileCompleteSuffix() → {String}

Get the complete suffix of the file.
Returns:
Type
String

(static) getFileDirectory() → {String}

Get the directory of the file.
Returns:
Type
String

(static) getFileSuffix() → {String}

Get the suffix of the file.
Returns:
Type
String

(static) getSignature(nOffset, nSize) → {String}

Get a signature string from the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes.
Returns:
Signature.
Type
String
Example
var signature=Binary.getSignature(0,4);
if(signature=="AA5411DD")
{
    bDetected=1;
}

(static) getSize() → {UInt}

Get the size of the file.
Returns:
Type
UInt

(static) getString(nOffset, nSizeopt) → {String}

Get a text string from the file. A string is read up to the first unreadable character or up to the maximum length.
Parameters:
Name Type Attributes Default Description
nOffset UInt The offset in the file.
nSize UInt <optional>
50 The maximum size of the string, in bytes.
Returns:
Type
String
Example
var sString=Binary.getString(0x100,32); // read a string from offset 0x100, maximum length 32 bytes
var sString=Binary.getString(60); // read a string from offset 60, maximum length 50 bytes (default value)

(static) isSignaturePresent(nOffset, nSize, sSignature) → {Bool}

Check if a signature (see compare) exists in a region of the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
nSize UInt Number of bytes to check.
sSignature String The signature.
Returns:
Type
Bool

(static) readBEDword(nOffset) → {UInt}

Read a big-endian dword.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The dword value.
Type
UInt

(static) readBEWord(nOffset) → {UShort}

Read a big-endian word.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The word value.
Type
UShort

(static) readByte(nOffset) → {UChar}

Read a byte value from the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The byte value.
Type
UChar

(static) readDword(nOffset) → {UInt}

Read a dword value from the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The dword value.
Type
UInt

(static) readEDWord(nOffset, bBE) → {UInt}

Read a dword, selecting endianness.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
bBE Bool True for big-endian.
Returns:
The dword value.
Type
UInt

(static) readEWord(nOffset, bBE) → {UShort}

Read a word, selecting endianness.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
bBE Bool True for big-endian.
Returns:
The word value.
Type
UShort

(static) readShort(nOffset) → {Short}

Read a short (signed 16-bit) value.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The short value.
Type
Short

(static) readWord(nOffset) → {UShort}

Read a word from the file.
Parameters:
Name Type Description
nOffset UInt The offset in the file.
Returns:
The word value.
Type
UShort

(static) swapBytes(nValue) → {Uint}

Swap the four bytes of a dword. For example 0x11223344 becomes 0x44332211.
Parameters:
Name Type Description
nValue UInt The value.
Returns:
The value with its bytes swapped.
Type
Uint