PELock Version History

See how has PELock changed over the years, what methods of software protection have been added, what has been improved and fixed.

Version history


  • Command line protection with /auto parameter will protect all files in the project list (previously only the first file was protected)
  • Added French language to the user interface (thank you Terry)



  • All binaries (installer, PELock, keygen DLL) were digitally re-signed using Thawte digital certificate. Long story short - our previous certification company StartCOM was banned first from the major web browsers and now in 2019 from Microsoft Windows because of their shady business practices (issuing back dated certificates) and their main CA certificate was revoked, which resulted in blocking any software signed with their digital code signing certificates (even if it was valid till the end of 2019 like in our case). We had huge problems to get a new one with COMODO / Sectigo because of their dumb policies, that required us to be listed in commercial business DUNS directory (1600 USD for a listing) or to have a blue shield of verification on Google Maps (even if this program was discontinued because it required to have a Google Business and now defunct Google+ accounts linked together...). I've been trying to get this new certificate for more than 3 weeks with COMODO without a result and with tons of legal, notary signed company papers, utility bills send to them for verification, they didn't want to issue a code signing certificate no matter what. Finally I have tried to get it from Thawte, and after a simple business verification process, they granted us a new certificate after 2 days. I would like to apologize to all the customers for all the inconvenience in those days when you couldn't use our software.




  • Added new license system function IsKeyHardwareIdLocked to determine if the key was locked to the hardware identifier, all SDK packages and usage examples updated.



  • Key status API function GetKeyStatus returned wrong results when time trial settings were enabled. Thank you Kevin for the bug report.



  • Upgraded loader code to avoid false-positive detections
  • Time trials API functions fixed to return valid PELOCK_TRIAL_ABSENT value accordingly to the documentation



  • Add default password hiding and displaying to the password protection dialogs
  • Add option to display which item has triggered the detection in Active Protection tab
  • Fixed warning dialogs titles saving in debugger detection options (and others)



  • Nagscreens informing the user that the key is missing are now shown when "Don't run application without a license key" is enabled




  • fixed hardware identifier pasting in the new user dialog box



  • removed a bug in license key system API related to hardware identifier reading



  • removed a bug that caused crashes while adding virtual DLL libraries to the list
  • fixed DLL handling bug with the default configuration settings
  • callbacks parameter passing is fixed for stdcall convention



  • relocation handling bug removed for ASLR enabled executable images



  • new metamorphic engine
  • new multilayer polymorphic engine
  • detection of running and attached debuggers
  • CRC file protection against modifications
  • virtual machine detection
  • new multi-thread protection approach
  • import table redirection improved with extra options
  • emulation of standard WinApi functions
  • generate white noise WinApi function calls
  • relocate executable image at a random image base
  • hide direct import table function calls
  • hiding of COM object classes
  • COM tracers detection
  • network sniffer detection
  • entrypoint antitrace protection
  • initialization table protection for Delphi applications
  • active detection of user defined cracking applications
  • saving file passwords to the Windows Registry
  • option to disable encryption of application's data with a password
  • option to enter password from the command line
  • macro analyzer added to analyze the proper placement of SDK macros in compiled binaries
  • new protection macros PELOCK_CHECKPOINT and PELOCK_CPUID
  • initialization callback functions PELOCK_INIT_CALLBACK
  • memory protection macro PELOCK_MEMORY_GAP
  • protected constant values PELOCK_DWORD
  • protection presence detection with IsPELockPresent functions
  • data encryption functions EncryptData / DecryptData
  • current process memory encryption EncryptMemory / DecryptMemory
  • more control over SDK system
  • watermarks added
  • watermark macros PELOCK_WATERMARK added
  • region and language lock options
  • default command line parameters
  • support for the Windows service applications (services)
  • allow only one instance option
  • option to disable DEP protection for protected application
  • option to check administration privileges
  • option to disable visual styles for protected application
  • Kaspersky Anti-Virus hooks compatibility added
  • Microsoft Detours hooks compatibility added
  • full compatibility of protected applications with the latest operating systems: Windows XP SP2/SP3 (32 bit), Windows XP (64 bit), Windows Vista (32bit / 64bit), Windows 7 (32bit / 64bit), Windows 8 (32bit / 64bit), Windows 8.1 (32bit / 64bit) and Windows 10 (32bit / 64bit)

License system

  • support for the UNICODE version of API functions
  • user name size limit increased up to 8192 bytes (8 kB)
  • option to create license keys as registry dumps (additional key format)
  • option to save keys to the ZIP archive
  • extra function to check license key status
  • new time trial options
  • remove local trial information from the Windows Registry
  • setting key from the memory buffer
  • additional 16 custom integers that can be stored in the license key
  • drag & drop enabled for the user name field
  • option to remove whitespace from the user name string
  • encrypt all key data with hardware identifier
  • users list sorted alphabetically (by name)
  • improved support for loading project files from the command line
  • new options to display nagscreens, display messages and open web pages for an unregistered applications
  • read user list from another project or import user list from CSV file
  • new function for disabling registration key
  • function for reloading registration key
  • function for setting your own hardware identifier routine
  • reading license key running time
  • more control over SDK's macros and some of the functions

Key generator

  • brand new key generator
  • Linux cgi-bin key generator
  • PHP examples of how to generate keys online


  • new and improved examples for C, C++, Delphi, Lazarus, PureBasic, PowerBasic, D, MASM
  • SDK support for the MinGW / GCC Windows compilers, Pelles C, PowerBASIC (updated header files)
  • CPELock class for the C++
  • TPELock component for Delphi
  • PELock class for D language


  • new options window
  • global options window
  • it's possible now to change the window size
  • it's now possible to change interface language without restarting the application
  • recent files list, to see it click on the button marked with ◀, or click with the right mouse button on the filename field
  • automatic hardware id field completion, hardware id is automatically pasted from the clipboard if you select this option
  • updated FAQ section, e.g. MS Visual Studio C++ / Borland C++ / Delphi optimizations and encryption macros
  • problem with large system fonts (120 DPI and higher) fixed
  • tooltips handling improved
  • "Edit" buttons replaced with icons
  • auto complete of file, URL and directory paths within edit controls
  • additional command line parameters
  • optional clickless navigation in tab and treeview controls


  • solid compression is used now to achieve better compression ratios
  • option to test all compression algorithms and select the best
  • option to disable application data compression
  • disable resource compression option
  • it's possible to select which resource types can and cannot be compressed
  • added several compression algorithms, including QuickLZ, UCL, zlib, miniLZO, HLZ, BriefLZ, JCALG1 and Mini-LZ
  • it's possible now to use custom compression library
  • compression algorithm random selection

Other features

  • generating antivirus friendly output files
  • creating batch files to restore original files from the backup copies
  • new option to save backup files to the selected directory
  • digitally signing of the protected applications (support for double signatures)
  • support for CFGuard and SAFESEH mitigation technologies
  • TLS Callbacks functions support, fully compatible with all Windows versions
  • option to preserve original file date
  • option to preserve original file attributes
  • option to preserve original zone identifier
  • sound events
  • new remote license system used by PELock
  • nagscreen window at the application startup and exit
  • detection of files protected with a Windows File Protection (WFP)
  • use only one CPU power for protected application option
  • set priority class for protected application process and for the loader itself
  • delay execution option
  • shut down the system after application exit
  • memory leaks removed
  • backup restoration rewritten
  • merge empty sections
  • fill alignment gaps between sections with random bytes
  • align loader's size to the file alignment value
  • option to remove exported functions structure
  • load application libraries statically
  • remove overlays option changed to copy overlays, additionally there are more options available to control overlays (like emulation)
  • option to append your own file at the end of the protected file
  • option to set the custom output file size
  • support for the applications with UNC paths (WebDAV mechanism) to DLL libraries in import table
  • support for configuration and project files larger than 64 kB regardless of the operating system


  • additional protection code redirection
  • added active protection
  • new api GetKeyExpirationDate
  • new options automatically start protection process after file loading and exit application after successful file protection
  • save log and clear log buttons added
  • password protection fixed


  • hardware key id added
  • new markers CLEAR_START i CLEAR_END
  • additional options in DOS header optimization
  • new option strip overlays
  • compression level option
  • password protection
  • external keygen library added


  • additional key data option
  • key expiration date option
  • protection against code dumping


  • added CRYPT_START and CRYPT_END markers
  • added additional anti-debug check
  • auto association of .plk files


  • added anti-filemon and anti-regmon checks in loader code
  • command line support added e.g. "pelock c:\project.plk", "pelock e:\myfile\file.exe"
  • fixed Delphi examples bugs


  • English help file
  • few bugs removed


  • first official version of PELock


If you would like to ask me about PELock, or something's not clear, mail me. I'll be happy to answer all of your questions.