NsisFile plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
mNo edit summary
(→‎Usage: beautify with mediawiki syntax, interwikis Reference/FileOpen Reference/FileSeek Pop)
 
Line 15: Line 15:
The following is taken from the readme file in the downloadable zip file:
The following is taken from the readme file in the downloadable zip file:


<pre>
;<nowiki>nsisFile::BinToHex <string></nowiki>
nsisFile::BinToHex <string>
:Convert a string into an hexadecimal string representing the equivalent ANSI character bytes
Convert a string into an hexadecimal string representing the equivalent ANSI character bytes
:No terminating NUL (00) character and no formatting characters are added.
No terminating NUL (00) character and no formatting characters are added.


nsisFile::HexToBin <hex string>
;<nowiki>nsisFile::HexToBin <hex string></nowiki>
Convert an hexadecimal string representing ANSI characters bytes into the equivalent string
:Convert an hexadecimal string representing ANSI characters bytes into the equivalent string
The string might be truncated to the first NUL (00) character encoutered.
:The string might be truncated to the first NUL (00) character encoutered.
Eventual formatting characters are ignored.
:Eventual formatting characters are ignored.
nsisFile::FileReadBytes <file handle> <length>
;<nowiki>nsisFile::FileReadBytes <file handle> <length></nowiki>
Read <length> bytes from the given file and return them as an hexadecimal string
:Read <length> bytes from the given file and return them as an hexadecimal string


nsisFile::FileWriteBytes <file handle> <hex string>
;<nowiki>nsisFile::FileWriteBytes <file handle> <hex string></nowiki>
Write to the given file the bytes sequence, given as hexadecimal string
:Write to the given file the bytes sequence, given as hexadecimal string
nsisFile::FileFindBytes <file handle> <hex string> <length>
;<nowiki>nsisFile::FileFindBytes <file handle> <hex string> <length></nowiki>
Search the given file for the bytes sequence, given as hexadecimal string.
:Search the given file for the bytes sequence, given as hexadecimal string.
The search is done over <length> bytes from the file (this value should include the length of the bytes sequence)
:The search is done over <length> bytes from the file (this value should include the length of the bytes sequence)
Use -1 as <length> to search the whole file.
:Use -1 as <length> to search the whole file.
The result is -1 if not found, or the file offset found. (File pointer is automatically positionned to this offset)
:The result is -1 if not found, or the file offset found. (File pointer is automatically positioned to this offset)


nsisFile::FileTruncate <file handle>
;<nowiki>nsisFile::FileTruncate <file handle></nowiki>
Truncate the given opened file at the current file pointer (as positionned by NSIS "FileSeek")
:Truncate the given opened file at the current file pointer (as positioned by NSIS [[Reference/FileSeek|FileSeek]])


Notes:


Notes
* File handle is the value returned by NSIS [[Reference/FileOpen|FileOpen]] function
-----
* Function result is returned on NSIS stack (use [[Reference/Pop|Pop]] to retrieve it)
* File handle is the value returned by NSIS "FileOpen" function
* You can use NSIS [[Reference/FileSeek|FileSeek]] function to move to a specific offset before calling these functions to specify where to start the operation
* Function result is returned on NSIS stack (use "Pop" to retrieve it)
* You can use NSIS "FileSeek" function to move to a specific offset before calling
these functions to specify where to start the operation
</pre>
 


== Download ==
== Download ==

Latest revision as of 10:09, 12 May 2017

Author: Wizou (talk, contrib)


Links

nsisFile Plugin Homepage

Presentation

nsisFile is a small NSIS plugin that manipulate file content, especially binary data.

You can typically use it to:

  • search for binary patterns in file
  • read or write (patch) binary data from/to binary files

Usage

The following is taken from the readme file in the downloadable zip file:

nsisFile::BinToHex <string>
Convert a string into an hexadecimal string representing the equivalent ANSI character bytes
No terminating NUL (00) character and no formatting characters are added.
nsisFile::HexToBin <hex string>
Convert an hexadecimal string representing ANSI characters bytes into the equivalent string
The string might be truncated to the first NUL (00) character encoutered.
Eventual formatting characters are ignored.
nsisFile::FileReadBytes <file handle> <length>
Read <length> bytes from the given file and return them as an hexadecimal string
nsisFile::FileWriteBytes <file handle> <hex string>
Write to the given file the bytes sequence, given as hexadecimal string
nsisFile::FileFindBytes <file handle> <hex string> <length>
Search the given file for the bytes sequence, given as hexadecimal string.
The search is done over <length> bytes from the file (this value should include the length of the bytes sequence)
Use -1 as <length> to search the whole file.
The result is -1 if not found, or the file offset found. (File pointer is automatically positioned to this offset)
nsisFile::FileTruncate <file handle>
Truncate the given opened file at the current file pointer (as positioned by NSIS FileSeek)

Notes:

  • File handle is the value returned by NSIS FileOpen function
  • Function result is returned on NSIS stack (use Pop to retrieve it)
  • You can use NSIS FileSeek function to move to a specific offset before calling these functions to specify where to start the operation

Download

nsisFile Plugin Homepage

ZIP archive contains the plug-in DLLs (ANSI & Unicode NSIS) as well as documentation, source code and sample script