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