DcryptDll plug-in

From NSIS Wiki
Jump to navigationJump to search
Author: Arrby (talk, contrib)


Links

Download link:

DcryptDll.zip (172 KB)

https://github.com/swallowdir/nsis-dcrypt/releases/download/v1.0/DcryptDll.zip (Unicode version)

The .zip file above includes a Plugin for NSIS (DcryptDll.dll) and two executable binaries (Ncrypt.exe & GenKeys.exe), the source to build all 3, two example .nsi scripts showing possible usage, the how to use document DcryptDllReadme.html, and a couple of other supporting files.

Description

These add encryption / decryption capability to NSIS using the RC4 algorithm but it can also hash the string with the MD5 algorithm.

In a manner similar to the ExtractDllEx plugin, one program is used on the computer you are compiling your NSIS script on to do the encryption, and the plugin is used to do the decryption when the Installer .exe is actually executing.

Ncrypt.exe is the program you use for the encryption, DcryptDll.dll is the plugin used to do the decryption.

The NGenKeys.exe is not necessary, but is included for convenience: you can use it to generate the KeyStrings you will need for encrypting and decrypting the files.

The zip file was built so that you can just extract it (preserving folder names) to your NSIS distribution Contrib folder. You should either move the plugin to the Plugins folder or recompile the source (the VC++ 6.0 project file has output set to the Plugins directory).
You can move Ncrypt.exe and NGenKeys.exe to some folder included in your PATH environment variable or whatever.

Please let me know if you find any of those "dreaded" bugs.

FAQ

Does DcryptDll support solid compression?

  • Since DCryptDll only handles encryption, you can make it support whatever type of compression you need. A common technique is to use 7-zip or another freely redistributable command-line archiving tool to compress all of the files that you need encrypted, and then write a batch script that encrypts the archive at compile time, using temporary files and !define to pass information between the compiler/preprocessor and the encryption tools. NCrypt.exe and NGenKeys.exe are your friends.