Copyright © 2010 Concept Software, Inc.
This file was last updated on August 9, 2010.
Protection PLUS PLUS Release Notes
This document contains release notes for SoftwareKey Protection PLUS. Information in this document is more current than that in the installed manual or online help . Please refer to the Instant PLUS release notes for details on its release.
Table of Contents
Release Notes
This section contains details on the incremental changes included with each new release of Protection PLUS.
Protection PLUS 4.6.0.4
General
Includes Instant PLUS 3.1.0.7.
Added Microsoft Hyper-V and VirtualBox virtual machine detection algorithms to SysInfo function.
Added CPCompNoXml properties to the ActiveX/.NET interfaces for use with SOLO's XML Activation Service.
Processing an EZ Trigger trigger code now forces updating the Last Used Date/Time.
All copy-protection functions now used cached Enhanced Computer ID data if found in the license file handle.
Support for caching the license file in the license file handle has been added.
Added new web service response properties to ClientServices library.
Updated Delphi samples to resolve warnings due to Delphi 2009/2010 using Unicode strings by default.
Updated .NET samples using the XmlActivationService via the ClientServices library for correct error handling.
Fixed a bug that caused incorrect date comparison with aliases when the Last Used Date/Time was zeroed out.
Removed support for LFOPEN_NOCACHE flag.
Various other enhancements and fixes.
Numerous documentation updates.
Protection PLUS 4.6.0.2
General
Includes Instant PLUS 3.1.0.4.
Fully tested in Windows 7.
New! Supports transferring your license by clicking "Deactivate Workstation" in the Start Menu.
New! Native 64bit support via DLL and static libraries.
64bit applications can now share license files/aliases by using the LFOPEN_AS32BIT flag.
New! Automation Client functions for calling the XmlActivationService and other XML web services.
A new VB6 sample named XmlActivationServiceTest demonstrates calling these functions.
New! The Client Services .NET library has been updated with support for the XmlActivationService.
The WithSOLO .NET samples have been updated to use the new functionality.
New! Protection PLUS functions for generating hashed ActivationData based of the hardware items of the Enhanced Computer ID algorithms. This can be sent to SOLO during activation to allow reactivation on the same computer.
New! Added license file field for storing the Installation ID.
Added support for reading and writing to the last used UTC date fields.
All Visual Studio sample projects have been upgraded for VS2005 and VS2008 support.
New! Static libraries that target the dynamic C Run-Time libraries. Use these to avoid linker errors. The library names are appended with '_md' to indicate the difference.
The offline activation HTML file now displays a link in case redirection to SOLO Server fails.
Fixed intermittent (but rare) crashes encountered by some users.
Fixed registry permissions issues for limited user accounts.
Fixed a bug in pp_semopen() that resulted in the second semaphore file being incorrectly named 'sema00-1.net'.
Resolved an issue where the .NET component (SKCLNET.dll) could incorrectly update the Last Used Info.
Resolved an issue where the system time (not date) could be backdated if the EZTrial parameters were not set.
Various other enhancements and fixes.
Numerous documentation updates, including references for all newly added functions.
Protection PLUS 4.5.9.1
4.6 Beta 1
General
Includes Instant PLUS 3.0.0.3 (includes 64 bit application support).
Includes all updates, fixes, and enhancements from 4.5.0.2.
NEW 64 bit static library and DLL; KeyLib64.dll/SKeyLib64.lib and SKCA64.dll/SKCA64S.lib.
New data types for 64bit (requires using the _WIN64 preprocessor directive): PPLFHANDLE, LPPPLFHANDLE, PPHWND (Note: these are #ifdef'd and remain defined as LONG in 32bit and HGLOBAL, HGLOBAL *, and HWND respectively in 64bit. Please refer to KEYLIB.h for specifics.)
Enhanced Computer ID Algorithm (ECID) Updates
Updated so the MAC Address algorithm no longer applies its votes if no data is present/found.
Updated so the Windows Product ID algorithm has support for Windows Vista x64. A vote will not be added for a license that previously held no data.
Updated to omit WMI data for protected DLLs passing in COMPNO_NO_WMI to prevent the potential for a program to hang while while the ECID algorithm updates the authorized computer with accepted hardware changes.
REMOVED functions: pp_convertv3() and pp_getcode (use pp_eztrig1 or pp_eztrig1dlg instead).
Protection PLUS 4.5.0.2
General
Includes Instant PLUS 2.5.0.4
Added UTC support, which is especially useful for network floating licenses
Added pp_getdateex function, which accepts a PP_USE_UTC flag
Added pp_gettimeex, which accepts a PP_USE_UTC flag
pp_upddate stores both the local system time and the UTC time in the license file for backwards compatibility
pp_valdate checks agains the UTC time if available, and falls back to the local system time if not
Updated sample function imports to include the function prototypes for pp_getdateex and pp_gettimeex
Enhanced performance of the SID retrieval in Enahnced Computer ID algorithms
Added COMPNO_NO_WMI flag to omit WMI data retrieval with the Enhanced Computer ID algorithms. This is to address potential conflicts with CoInitialize, which is especially important when protecting DLLs (since CoInitialize may not be called in DllMain).
Updated the COMPNO_IPADDR algorithm to accept a drive letter (previously it required that the drive letter be followed by a colon)
Fixed an issue with the Enhanced Computer ID algorithms which could cause a false match of hard drive model data
Updated release notes from a plain-text format to an HTML format
Updated the offline activation (pp_importactfile) function to pull down registration data from SOLO if available
Fixed issue in the alias scatter algorithm which could cause a crash in Windows 98
Protection PLUS 4.5.0.0
Release Candidate 1
General
Includes Instant PLUS 2.5.0.0
New Instant PLUS DLL interface can be used with .NET applications. Anyone using EZTrial2 should consider switching to the Instant PLUS DLL interface for many new features.
Added new EZTrigger code 37 for Network Floating. This code combines trigger codes 28 and 33 into one step.
COMPNO_HDSERIAL algorithm now supports passing a drive letter of "1" to use the drive where the executable is located. This can be used to lock the application to most types of removable media, such as USB thumb drives.
SwkClientServices.dll is now strong named
Fixed a rare issue where the license file can be corrupted (becomes zero bytes) if the application is terminated abnormally while writing to the license file.
Updated the COMPNO_ENHNACED algorithm so the single ID changes less often. The single ID should only be used for telephone activations.
Updated the COMPNO_WINPRODID algorithm for Vista x64 support.
DLL Interface (Keylib)
Fixed an issue where offline activation (activation from another machine with Internet access) failed on 64bit Windows.
.NET Interface (SKCLNET)
Added License Return functionality to the VB.NET EZT_ELM sample.
Added an LFClose method which updates the last used date and time and closes the license file
Documentation Updates
Quick Start now recommends using the Instant PLUS DLL in favor of EZTrial2
Updated FAQ
Protection PLUS 4.4.1.0
General
Includes Instant PLUS 2.1.0.21
Replaced the DemoShield launcher with a new launcher program.
LFEdit now auto-generates Trigger Code Seed, RegKey2 Seed, and License File Password when creating a new product definition.
Updated samples to use the Enhanced Computer ID algorithms
Fixed the Enhanced Computer ID auto-upgrade logic in EZTrial to also auto-upgrade demo licenses.
Fixed bug in LFEdit where it saved the RegKey2 value as a negative number (this did not result in things failing to work proprely, but it was misleading).
Fixed bug in installer that occurred when trying to install to the Program Files directory in Windows Vista.
Removed Instant PLUS 1.0 from LFEdit
Updated installer sample options
DLL Interface (Keylib)
Added COMPNO_SERVER_MACADDR algorithm for network floating implementations (docmented in the pp_compno [legacy] topic).
pp_lfopen and pp_lfalias now supports using the scatter mechanism in more than just HKEY_LOCAL_MACHINE (:LM:). HKEY_CLASSES_ROOT (:CR:) and HKEY_CURRENT_USER (:CU:) now also supports scattering.
Fixed bug with pp_semopen where it would try to set permissions on a directory even when it did not have access to do so.
Fixed memory leak with the Enhanced Computer ID algorithms (this memory leak is very rarely encountered)
Fixed bug with pp_semopen which would cause Terminal Services sessions to end prematurely.
Documentation Updates
When Instant PLUS 2.1.0.20 or later is installed with Protection PLUS 4.4.1.0 or later, the Protection PLUS documentation now also contains the Instant PLUS documentation.
Updated manual graphics to show more accurate screen-shots, and more up-to-date diagrams, etc...
Updated Protection PLUS system requirements.
Added documentation for the .NET component's GetLicensedComputer and SetLicensedComputer methods, and updated the LicensedComputer property documentation to note that it only applies to the ActiveX component.
Added documentation for Network Broadcast functions (pp_netopen, pp_nettest, pp_netclose)
Added notes throughout the entire manual noting that the COMPNO_BIOS algorithm and its supporting files (MACHNM1.exe, MACHNM32.sys, MACHNM64.sys) have been deprecated.
Fixed documentation on pp_setvarchar, pp_getvarchar (DLL), SetVarChar, and GetVarChar (ActiveX/.NET) to show correct indexes for VAR_AUTOCL_URL_UNLOCK and VAR_AUTOCL_URL_REGISTER fields.
Fixed the browse sequence.
Fixed formatting for ActiveX/.NET documentation so the headers shared the same formatting across all topics.
Fixed the ActiveX/.NET documentation to show that EZTrial2 is now supported in these interfaces.
Fixed topic on upgrade logic/pseudo-code for the Enhanced Computer ID algorihtms, which had incorrect syntax for pp_copycheckth().
Fixed graphics on Enhanced Computer ID documentation
Fixed broken links.
Fixed SK_PostRegData to show example code for that function instead of SK_PostEvalData.
Removed references to implementation via Marx CRYPTO-BOX hardware.
Removed references to ICVerify
Removed references to seperate editions of libraries (i.e. the old Enterprise and Internet libraries, which were previously seperate).
Removed documentation for Instant PLUS 1.0 (which has been removed from LFEdit)
Added documentation for new .NET samples
Protection PLUS 4.4.0
General
Includes Instant PLUS 2.1.0.15
Added additional information to the Enhanced Computer ID alogirhtm documentation regarding vote weights and behavior.
Updated Enhanced Computer ID algorithms to use a Domain algorithm in place of the Dockable algorithm.
Fixed bug with pp_semused where zero was always returned. This bug was introduced when the performance enhancements to pp_semopen were made.
Signed versions of the Machnm32.sys and Machnm64.sys files are now distributed.
Various Enhanced Computer ID algorithm tweaks, most revolving around Windows Vista, upgrading Windows versions, and booting multiple versions of Windows on one computer.
New sample for Update Checking added. By default, this sample is located at: C:\SWKey\PLUS\Samples\WithSOLO\C#.NET2005\UpdateCheck
New EZT_ELM sample for VB.NET 2003 added. By default, this sample is located at: C:\SWKey\PLUS\Samples\WithSOLO\VB.NET\EZT_ELM
Removed old Automation Client VB.NET samples (these used Keylib instead of SKCLNET)
Fixed bug in LFEdit where no warning was shown when an attempt was made to save to a file/path in which the user does not have sufficient permissions.
Fixed minor bug in Tools->Options dialog in Vista where the window border of the dialog slightly overlapped the buttons at the bottom
Updated LFEdit to show widgets that match the Windows theme (this includes Radio buttons and checkboxes...)
Fixed LFEdit to show the Single Computer ID in the Authorized Computers tab when Enhanced Computer ID algorithms are being used.
Added support for enhanced Computer ID algorithms to SWKey\PLUS\LFRW.exe and SWKey\PLUS\Samples\WithoutSOLO\VB6\DLL\LFRW
.NET Interface (SKCLNET)
Fixed bug in EZTrial2 method, which could cause intermittent crashes.
Added a build of SKCLNET specifically for ASP.NET to the SWKey\PLUS\Samples\WithoutSOLO\ASP.NET directory.
Added EZTrial1 sample for ASP.NET (C# only), which includes a "PermissionsHelper" sample which shows
ActiveX Interface (SKCL)
Fixed bug in EZTrial2 method, which could cause intermittent crashes.
Fixed bug where the ActiveX component complained when it was loaded in a designer.
Protection PLUS 4.3.5
4.4.0 Beta 1
General
New Enhanced Computer ID Algorithms added
Enhanced the speed of floating network licensing
.NET Interface (SKCLNET)
Automation Client
SK_PostStrings: Fixed bug if SOLO returned an error response, some memory could be freed twice and could cause issues.
Protection PLUS 4.3.1
General
Includes Instant PLUS 2.0.98
Fixed problem when writting license file to Registry Keys not in HKEY_LOCAL_MACHINE.
Fixed problem with SKCLNET when multiple instances are in same thread.
Automation Client
Added SK_SECURE_CONNECTION for SSL Communications to SK_ConnectionState
Added SK_SOCKETS_ONLY flag to only use WinSOCK in SK_ConnectionState
Fixed Bug with SK_UpdateCheck memory leak
Protection PLUS 4.3.0
General
Includes Instant PLUS 2.0.98
Added PP_NETOPEN, PP_NETTEST, and PP_NETCLOSE to DLL/LIB for Network Broadcast Licensing.
Added PP_SYSINFO to check the current system architecture: You can now detect and prevent your application from running on a VMWare virtual machine, a Virtual PC machine, or remotely through Terminal Services/ Remote Desktop client.
Fixed issue if using Registry Key and string didn't conform to Registry Key syntax.
Added error code in PP_COMPNO if COMPNO_BIOS64 is used on a non-x64 system.
Updated PP_EZTRIAL2 (EZTrial2 in SKCLNET) so that the <flags> parameter is passed into SK_ProcEZTrig1 for online activations.
Re-Added Late-Binding to IpHlpApi.dll for backwards compatibility with previous operating systems.
Fixed problem with locating BIOS driver files (Machnm1.exe, Machnm32.sys, and Machnm64.sys).
Added Extra checking to see if BIOS driver (Machnm32.sys/Machnm64.sys) was installed before attempted to obtain the BIOS algorithm.
Added PP_LIBVERSION in DLL/LIB interface. Allows checking the version number of currently loaded library.
Updated EZTrial2(Instant PLUS version 1.0) dialog box to change text from "Activate this software by phone" to "Activate this software manually".
Updated read/write License File functionality to always keep the previous "Last Accessed" and "Last Modified" date/time of the physical file.
Fixed problem where Windows XP File Cache was holding the file open during reboot or
forcible program closure. This was causing problems where license file was becoming
corrupt, or 0KB in size. Due to this fix, the write of the license file takes a
second or two longer.
Added LFALIAS_NOCACHE flag for PP_LFALIAS for compatibility with PP_LFOPEN's LFOPEN_NOCACHE flag.
Fixed problem if the license file was marked as "Read-Only".
.NET Interface (SKCLNET)
Updated NetSetup.msi (SKCLNET installer) to re-include previous VB.NET samples.
Updated SKCLNET to fix LoaderLock issue in Visual Studio 2005. (Mircosoft bug with all versions of the .NET Framework.)
Updated SKCLNET to have a LFPassword Maximum length of 1024 characters.
Added checking to SKCLNET’s IsDemo property to fix a problem that occurs when the License File is blank. Now returns error 27 (ERR_EXPTYPE_INVALID) if Expiration type is blank.
ActiveX Interface (SKCL)
Updated SKCL to have a LFPassword Maximum length of 1024 characters.
Automation Client
Added a Flag Global Flags for Ex functions and SK_ConnectionState to only use WinSock for communications (SK_SOCKETS_ONLY).
Fixed issue in SK_GetLicenseStatusEX where function would return SKERR_NONE rather than SWKERR_INVALID_SERVER_RESPONSE.
Added Flag for SK_UpdateCheck (SK_VERIFYDAYS) to have SOLO Server/Instant SOLO verify the "Download Expiration" date on the License ID before showing that there is an update available.
Added checking to SK_FileDownload to see if file is present on the server.
Added checking to SK_FileDownload to see if one of the following strings are present
in the buffer returned as the file. "Invalid Data Entered!",
"SWKEY Error Response = 100<", or "Error Response = X" (where "X" is a value greater
than or equal to 100 defining an error).
Added Error Code SWKERR_HTTP_FILENOTFOUND if file isn't present on the HTTP server.
LFEdit
Fixed Painting issues with LFEdit, where dialog box wasn't being displayed properly.
Fixed problem in LFEdit's License File Save dialog box. It is now populating the "File Attributes" properly from the Product Definition settings.
Added extra checking to Trigger Code edit dialog box to see if the RegKey2Seed is within its limits.
Protection PLUS 4.2.1.12
General
Includes Instant PLUS 2.0.87
Added COMPNO_BIOS64 computer algorithm for pp_compno(CPCompno). This now supports the use of Machnm64.sys on Windows 64-bit systems. If you use COMPNO_BIOS, it will automatically try to use this new System Service if running on 64-bit systems.
Added COMPNO64_BIOS flag for pp_compno32drivers to support loading/unloading/checking Machnm64.sys on 64-bit systems.
Revisited and fixed the 17000 days issue with EZTrial(pp_eztrial1/pp_eztrial2).
Added LFOpen flag LFOPEN_NOCACHE to make sure that the file is written directly to disk.
Fixed Lock/Unlock issue when writing to license file.
Added extra checking within LFUnlock (pp_lfunlock).
Fixed problem with EZTrial2(pp_eztrial2) when specifying your own Icon for the Demo dialog box.
Added support for License Files to be Windows Registry Keys under HKEY_CURRENT_USER and HKEY_CLASSES_ROOT
C/C++ requires link to Iphlpapi.lib when statically linking See Microsoft KB836769
Automation Client
Added 20 second timeout to the SK_FileDownload function. This was hanging if you specified the wrong Protocol with a valid Port.
Verified and updated SKCA.H file with the SK_Firewall function and flags.
Updated the Visual Basic 6 SKCA32.bas file to reference strings ByVal from ByRef.
Protection PLUS 4.2.1.10
General
Includes Instant PLUS 2.0.83
New launcher added. We have created a launcher application to help
new Protection PLUS users make a choice between the API and Instant PLUS.
In addition, the launcher simplifies finding the different components of
Protection PLUS such as the API, Documentation, or sample application.
Now using Visual C++ 6.0 to compile static libraries. This will remove support for older versions of C/C++ libraries.
Added flag "SUPPRESS_ERRORS" for pp_compno to suppress the Machnm1.exe error message boxes. This flag is passed in as an Algorithm in the first parameter.
Updated pp_eztrial1 and pp_eztrial1test not to update the last used time if the "Update Last Used Time" flag is specified. (Previously updated last used time, but did not test it.)
Added Trigger code 36 to EZTrigger. "De-Authorize All Computers". Deletes all computer ids from license file.
Fixed icon problem on EZTrial2 dialog box, when license file had multiple periods in filename. (Ex: sample.lf.ini and sample.lf.bmp)
SKCL.DLL and SKCLNET.DLL: Updated CPCheck to reference CPTolerance if COPY_STRICT flag not specified. Previously did not check CPTolerance.
Fixed bug where .NET Component attempted to access license file when "Enable" property was False.
Added checking to .NET component. It will not fire the "StatusChanged" event if no License File Name (LFName) is specified.
Automation Client
The Installer now installs all the samples, libraries, and the associated header to the /PLUS directory
Now using Visual C++ 6.0 to compile static libraries. This will remove support for older versions of C/C++ libraries.
Now distributing static library with Professional and Enterprise Editions.
SK_ConnectionState now only returns 2 results: SWKERR_NONE and SWKERR_NO_CONNECTION
Timeout now works properly with functions that the timeout is specified.
Added error code SWKERR_CONNECTION_TIMEOUT.
Updated SK_GetErrorStr return 8 to "INVALID SERVER RESPONSE", to match manual.
Updated SK_ProcEZTrig1 to use the following URL if URL for Activation is blank: "secure.softwarekey.com\solo\unlock\getcode.asp"
Removed requirement of linking to winmm.lib with static library.
Fixed issue with callback function with SK_FileDownload
Added functionality to change mouse cursor to an hourglass during connection attempts with SK_GetTCDataDlg and SK_ProcEZTrig1
Added functionality to use "http://" and "https://" on Server parameters on all functions.
Updated SK_GetTCDataDlg to properly use SSL connection if SWK_SECURE_CONNECTION is used.
Added functionality to SK_GetLicenseStatusEX, SK_GetRegDataEX, SK_GetTCDataEX,
SK_GetTCDataDlg, SK_PostCounterEX, SK_PostEvalDataEX, and SK_PostStringEX to specify
port using syntax:
"http://secure.softwarekey.com:123/solo/unlock/getcode.asp"
(Servername:Port for <Server> parameter in the associated functions.)
Updated default port if SK_SECURE_CONNECTION is used on functions SK_GetLicenseStatusEx, SK_PostEvalDataEx, and SK_PostStringEx.
Fixed bug with SK_GetLicenseStatusEX so that if WinINET connection returns a valid Error Response from server, it will not fall back down to WinSOCK.
Added function SK_Firewall to help with Microsoft's Firewall built into Windows XP Service Pack 2 and Windows 2003 Service Pack 1.
Protection PLUS 4.2.1.9
General
Fixed problem with Machnm1.exe running on Windows 9x platforms
Fixed problem with Domain Lookup on user permissions
Fixed problem with permissions not being set on a registry key based license file
Protection PLUS 4.2.1.8
General
Fixed problem with Windows XP Service Pack 2 where the date of the license file is invalid.
Added extra checking to prevent corruption of the license file.
Updated EZTrial2 dialog box from "Trial Days Left:X" to "Days Until Program Expires:X" if the license is in Periodic mode.
Added 5 second pause in EZTrial1Dlg, if an invalid activation code was entered.
Added more checking for User Rights to the license file.
Fixed pp_lfalias/LFAlias problem on Windows 98.
Added recovery code if Machnm1.exe was not successfully closed during previous execution.
Fixed problem with LF_ALIAS_SCATTER flag.
Changed define for LFALIAS_SCATTER to 16, for Visual Fox Pro problem. Test for old flag value for backwards compatibility.
Modified the communication with the Machnm1.exe driver for better error handling.
Automation Client
Can now use http:// and https:// on URLs for the server name on all functions.
Fixed problem with SWKERR_SERVER_DOWN always returning when the name of a product contained "download".
Fixed problem when slower connections would receive Error 8.
Added Checking in SK_ProcEZTrig1 to verify binding flags before creating Software Binding Aliases.
Fixed problem with Demo AutoCL when not going to ".softwarekey.com" or "swk". Now returns proper error code.
Fixed issue where only the first packet would be received or sent when the data was large.
Protection PLUS 4.2.1.7
General
Fixed pp_compno to allow for multiple calls to get the BIOS number with Machnm1.exe.
Fixed pp_compno when using the COMPNO_BIOS32 flag. Now returns negative numbers for descriptive error codes.
SKCLNET component now has no dependencies on the runtime libraries.
Automation Client
Fixed SK_PostEvalData to handle longer wait times before server response. This fixes the issue where the client did not receive the full response from the server.
Fixed issue where SK_ConnectionState caused an error when called from a FoxPro app.
Protection PLUS 4.2.1.6
General
New functions pp_exportactfile() and pp_importactfile(). These functions provide
an alternative to phone and online activation by using a file activation
system tied to Instant SOLO.
New driver support for Machm32.sys, which will replace Machnm1.exe to get the bios
algorithm under NT Based Operating Systems (Windows NT 4+, Windows 2000, Windows XP, Windows 2003, etc.).
(This is not supported or tested under anything older than Windows NT 4.)
New function pp_compno32drivers() to check, install, and uninstall the new Machnm32.sys driver. Will only work with Windows NT Based Operating Systems.
Fixed problem with 16-bit NetNum code causing occasional crashes.
License File password maximum length increased to 1024 characters.
EZTrig1Dlg will close the dialog after 3 unsuccessful attempts.
Changed some internal code to allow full Microsoft XP compatibility. No functionality has been modified in order to achieve this.
Changed some internal DLL calls to late binding so the libs are not needed when compiling.
Fixed bug in .NET component where date was returned in reverse order to some methods.
Fixed bug in .NET Redir method where incorrect value could be returned.
Fixed problem with .NET class occasionally not instantiating.
Fixed bug in .NET Password method that caused the same number to be returned every time.
Automation Client
New functions added:
SK_UpdateCheck() allows you application to check for updates with SOLO.
SK_FileDownload() will download files from HTTP and FTP.
SK_Parse () utility function to parse strings (useful with SK_UpdateCheck().
Major change to Sockets code in order to maintain compatibility with IIS6 and
Windows Server 2003. This problem may occur in older versions of the library
previous to 4.2.1.3
SK_PostRegData() was not sending the postal code - this is fixed.
Fixed memory leak in SK_PostStrings function.
Protection PLUS 4.2.1.5
General
New "scatter" flag added to pp_lfalias function making it more difficult
to detect locations of registry aliases (see description of pp_lfalias
in manual).
Permissions on file based license files are automatically set to EVERYONE\Full Control
when an admin or power user runs the application. Previously license file permissions
were only changed when the LF_CREATE_MISSING flag in pp_lfopen was set.
Machnm1.exe startup code has been changed to alleviate some startup problems on XP and 2000.
Added code to ignore loopback adapter for NT.
EZTrial2 and Instant PLUS(tm) now support DPI settings of 96 and 128.
Moved code to set permissions on the license files and aliases to the
pp_lfopen function. This allows permissions to be set when explicitly
creating license files in the registry and still functions normally with aliases.
Fixed bug in EZTrial2 which caused a custom bitmap to occasionally fail to load.
Fixed bug in MAC_ADDR algorithm which occasionally returned 0 on NT\2000\XP machines.
ActiveX component does not automatically check semaphore files when using EZTrial. You must use the Sem* methods when implementing network licensing.
ActiveX control BSTR conversion code altered to fix problem with Unicode characters.
ActiveX control now supports 3 letter system date formats.
Slight memory leak fixed in IsDemo function.
System File Alias name generation code altered in LFEdit to ensure name does not match any previously created name in the product.pd file.
Fixed problem with MS Scheduler occasionally interfering with pp_redir function.
Automation Client
Implemented code to allow automatic communication through proxy servers! This is only available on machines with Internet Explorer 3 or higher.
Added SK_ConnectionState() function to detect if an internet connection is available.
Added flag to SK_GetTCDataDlg() and SK_ProcEZTrig1() to hide the proxy button.
This is in case a call to SK_ConnectionState() is successful. You can call the these
functions without showing the proxy button so there is no confusion.
Implemented Secure Sockets Layer communication (requires Internet Explorer 4.0 and
higher. This is implemented through the flags parameter of the functions. Some
functions did not implement a flags parameter and in these cases an Ex version
of the function was created.
Added error code if successful connection is made to SOLO server but the database is unavailable due to maintenance, down, or offline.
PostRegData function added to library to allow registration data to be posted to SOLO from the application.
Protection PLUS 4.2.1.0
General
IMPORTANT NOTE: The KEYLBI16.DLL, KEYLBI32.DLL, and SKEYLN.LIB libraries are no
longer distributed with Protection PLUS. These libraries were distributed with
the Internet Edition of Protection PLUS and contained the ability to manage
web-based License Files. With the introduction of the Automation Client included
with PLUS Internet Edition, web-based License Files were no longer necessary.
The libraries were removed from the product to avoid customer confusion. The
PLUS installation routine will NOT remove this file from your computer in case
your application is erroneously using it. HOWEVER, SINCE THESE LIBRARIES ARE
NO LONGER INCLUDED, YOUR LIBRARY VERSIONS WILL NOT BE UPDATED. Be sure your
applications are using KEYLIBxx.DLL.
NEW - Instant PLUS(tm) allows you to add the most common features of Protection
PLUS into your application without source code modifications. Instant PLUS
injects code into your existing .EXE, .SCR, .DLL or .OCX files to protect against
decompilers, or other hacking tools that are used to discover information about
your application. In addition to the security features, trial features can be
added to your application seamlessly.
Protect executables from being modified by any means in order to change their functionality.
Check executables for integrity at startup.
Compress executables.
Provide simple licensing and online ordering/unlocking features.
Protect process space, which holds a protected executable, from being dumped by process dumping tools
Protect an executable from being disassembled and analyzed by debuggers
Protect process space, which holds an protected executable, from being modified
Protect an executable from being patched on disc
Protect code, data, and resources stored in an executable from being analyzed and modified by hex editors
Protect a program compiled in an executable from being restored by decompilers
NEW - Native Protection PLUS .NET Component. Allows seamless integration of
Protection PLUS into your .NET application. Includes sample applications
in VB.NET and C#.
The samples for VB5 have been updated to VB6, VC5 have been updated to VC6, Delphi_4 have been updated to Delphi_5.
Other Enhancements
Only the 32-bit libraries were updated to 4.2.1.
EZTrial2 Demo Screen Redesigned. Now has a more graphical design with radio buttons and allows the use of your company logo in the dialog.
Instant PLUS dialog now allows the developer to choose the compression algorithm used
or no compression if desired. We have found that a few applications are not
compatible with certain compression algorithms.
PP_Compno() function using the BIOS algorithm has been tweaked to alleviate problems communicating with machnm1.exe on Windows NT and 2000.
When using EZ Trial or EZ Trigger with the static library, it is no longer necessary to modify the resources in your application.
EZ Trigger dialog box now lists User Code 1 and 2 as locked text boxes to allow the
customer to copy and paste the numbers into an e-mail message, etc. Previously
they were listed as labels which could not be copied and pasted.
Updated dependency files to remove system DLLs that should not be distributed with application.
When License File Aliases are opened, the Windows NT/2000/XP permissions are now
automatically set so allow everyone to write to them. In previous versions,
an Administrator or Power User would have to install the product, but if a restricted
user ran the application, the aliases would not be updated since they did not have
the proper write permissions. This does not cause any errors. However, in the
latest version, because the permissions are relaxed, all users will be able to update
the aliases. This applies to both the registry and file-based aliases.
Added code to the PP_LFOpen() function to allow the permissions on the file or
registry to be changed to EVERYONE when logged in as admin or power user.
Previously this was only available with the PP_LFAlias() function.
Skips the Loopback MAC Address if present when using the MACADDR algorithm.
Using pp_lfopen() with flag LFALIAS_CREATE_MISSING set the alias file is updated from the master license file during the creation.
Fixed problem with EZTrigger returning ERR_SLOT_ALREADY_ASSIGNED for codes 27 - 31.
Automation Client
Demo version will append ".softwarekey.com" to server string for all SK functions.
If server field is null in SK function calls it is replaced with www.softwarekey.com.
VB.NET, VC6, and Delphi5 samples added.
VB5 samples updated to VB6.
Protection PLUS 4.109b
General
Added KEYLIB32.DEP and SKCL.DEP for better compatibility with the Microsoft Setup Wizard application.
Removed custom property pages from ActiveX interface. This allows for better
compatibility on the original release of Windows 95 and also reduces confusion
for new users.
Resource IDs for built in dialog boxes were changed to prevent conflicts with
Automation Client. Customers using the Visual C++ static library and one of
the library functions that displays a dialog box MUST update the resource IDs
in their project's resource.h file as listed under the function description
in the online manual for the function(s) they are using.
In DLL/LIB interface, added the function pp_gotourl() to launch default browser to specified URL.
pp_eztrial1() now supports two new return codes - 6 and 7 for support with
periodic expiration mode and network floating licensing. Refer to documentation for
the usage.
Minor enhancements and fixes to sample applications.
Moved online documentation to \SWKey and registered help file and TOC within Windows registry so all Protection PLUS applications can find the help file.
Significant enhancements to online and printed documentation.
LFEdit now properly removes EZ Trial aliases on all versions of Windows NT/2000 when a License File is saved.
DLLs no longer compressed with Shrinker (commercial compression utility). Some
Windows NT / 2000 machines were not able to load the compressed DLLs. Shrinker
was replaced with another compression product.
pp_compno() now supports new algorithm COMPNO_IPADDR to return a number based upon
the IP address of the server given either drive letter, UNC path or server name.
Refer to online documentation for usage.
A demo version of the Automation Client is installed to evaluate Instant SOLO(sm).
Protection PLUS 4.109a
General
Fixed bug in COMPNO_MACADDR algorithm.
Fixed a resource leak in pp_lfopen() if the registry key did not exist and LF_CREATE_MISSING was used.
EZTrig1 will now allow Delayed Trigger Codes when the user clicks the OK button
but leaves the Reg Key 1 field blank. Previously, the user would have to click
the Cancel button as the only way to save User Code 1.
Added prototype for EZTrial2. This new function allows a developer to call
one function to handle all licensing and online ordering. If you are developing
a new application and want information on trying EZTrial2, contact
support@softwarekey.com.
Protection PLUS 4.109
General
Further enhanced the COMPNO_WINPRODID algorithm to work under more computer configurations.
Enhanced the communication between KEYLIB32 and MACHNM1.EXE. The communication
was at times stressed on Windows 2000 machines. These enhancements virtually
eliminates all known problems related to MACHNM1.EXE.
Protection PLUS 4.108
General
Fixed a problem in COMPNO_WINPRODID that caused 2147483647 to be returned on some Win98 machines.
Added License File fields LICENSEID, CUSTOMERID, LICENSEPW for electronic licensing automation applications.
The EZ Trigger processing can now return ERR_INVALID_REGKEY2_ENTERED [70] when the
user enters an invalid REGKEY2 value (Trigger Code Event Data). Previously, the
event data was set to -1 and no error condition occurred.
Further enhanced EZ Trial processing to restart logic when a newer License File Alias is found with a different set of license data.
LFEdit
IMPORTANT NOTE: If you are installing this build of Protection PLUS on top of a
previous build, you MUST use the LFEdit.LF file that was sent to you via e-mail.
If you neglect this, LFEdit will complain about your LFEdit.LF file being out of
date.
IMPORTANT NOTE: The EZ Trial Parameters tab was moved from the License File window
to the Product Definition window. Now the EZ Trial parameters can be set once and
forgotten. All License Files created will automatically be programmed with the EZ
Trial parameters stored in the Product Definition.
The Tools / Options dialog now has an option to update the last used date and time
fields upon save. For most applications, this should be enabled. This helps
cause new License Files to overwrite any existing License File Aliases.
An Automation Client tab was added to the Product Definition for electronic licensing automation applications.
Minor enhancements to Most Recently Used (MRU) list.
Default Hard Expiration Date for new License Files is 12/31/2050 (the date furthest in the future).
Corrected wrong constant values used in certain EZ Trial Hardware Binding parameters tab.
ActiveX Interface
Added property Enabled and methods ClearPendingStatusChange and
ForceStatusChanged to help control the StatusChanged event. These help with
implementations that use the LFAlias method. Refer to the AdvLic sample and online
help for more information.
Minor changes to Property Page implementation to better support Visual C++.
Now processes EZ Trigger algorithm if TCode method is called and UseEZTrigger is set to True.
DLL Interface (KeyLib)
Added the function pp_semtest() to verify the Network Semaphore File is still
locked (prevents Network Administrators from manually closing network resource to
gain additional users).
Sample Code
Added new ActiveX samples for Microsoft Access 97 and 2000. New and updated DLL/LIB
samples for Visual C++ 5 or later. Updated VB5 and Delphi sample code. Updated
include files (PPP4.PAS, PPP4.BAS, KEYLIB.H with new errors, function(s), and License
File variable names).
Documentation
Enhanced manual from user feedback. Added some missing sections. New printed manual available that matches this help file.
Other Changes
Directory \SWKey\PPP4 renamed to \SWKey\PLUS. Protection PLUS is now abbreviated PLUS instead of PPP.
Help file is now installed into \WINDOWS\HELP to enable context sensitive help for ActiveX interface.
Protection PLUS 4.107
General
Enhanced COMPNO_MACADDR algorithm. Under rare circumstances, an active dial-up connection would cause this algorithm to change values.
Decreased the average time pp_semopen() takes to lock a license in large network configurations where many licensed users are active.
DLL Import libraries now compatible with Visual C++ 5.0.
Re-installing a previously unlocked EZ Trial application now runs in unlocked
mode properly at first execution that aliases are restored. In rare occurrences
on previous builds, the application would have to be run twice to properly
restore the license.
The function pp_semclose() now deletes the semaphore file after closing it.
Online manual (help file) has been enhanced and now uses secondary windows
to display information without leaving the context of the current topic. This
makes looking up definitions and functions and learning the product easier.
A quick reference section was added to list short descriptions of all Protection
PLUS concepts in one topic.
LFEdit can now display the aliases used by EZ Trial under Product Definition.
The Most Recently Used (MRU) list now works properly in LFEdit.
Minor other cosmetic changes in LFEdit.
Sample code for various languages updated. Delphi sample code for ActiveX interface added.
Directory \SWKey\PPP4 renamed to \SWKey\PLUS. Protection PLUS is now abbreviated PLUS instead of PPP.
Known Issues
64 bit Protection PLUS libraries do not have any support for the legacy BIOS algorithm.
pp_npdate fails in Windows Vista and higher when the UAC is enabled.
SK_GetTCDataDlg() is currently not supported in the static library
pp_netopen, pp_nettest, and pp_netclose are currently not supported in the 64 bit libraries.
pp_compno32drivers is not available in the 64 bit libraries.
When protecting a DLL and using the Enhanced Computer ID algorithms, it is important to use the COMPNO_NO_WMI flag to avoid a potential hang.
When protecting a Visual Basic 6 application and using the Enhanced Computer ID algorithms, the Computer ID may differ when running from the IDE versus running a compiled executable directly. This is because of known behavior with CoInitializeSecurity as documented in Microsoft KB 239561 . The application will still activate and run correctly on the computer on which development is being done, even though the Computer IDs differ.
Contact Information
Concept Software, Inc.
PO Box 770459
Winter Garden, FL 34777-0459
Phone: +1(321) 221-1497
Fax: +1(321) 250-6676
Web: http://www.softwarekey.com
Support: http://support.softwarekey.com
Free Newsletter and Updates
Be sure that we have your e-mail address on file. We make periodic
announcements of upgrades, new features, new tech notes on our web site.
Sign up today!
Downloading updates and renewing subscriptions
Both downloading updates and renewing subscriptions may be done online in the Customer Service Center .
To download, log-in to the Customer Service Center, and find your original order for Protection PLUS (not any prior subscription renewals!) in your order history. Note the License ID for the original order, which you may need for activation. Click the "Download" link to the right of this item in the order history.
To purchase a subscription renewal, log-in to the Customer Service Center, and find your original order for Protection PLUS (not any prior subscription renewals!) in your order history. Note the License ID for the original order, which you may need for activation. Click on the description of the original purchase (i.e. the link will be something like "Protection PLUS Internet Edition"). Then, the next page should show have an "Upgrade Options" section, where you may click on the appropriate subscription renewal.
Third-party Consultants for Hire
The following is a list of third-party consultants who are available for PLUS
and non-PLUS related issues. Contact the consultants about rates as they
may vary.
David O'Neil
Company: O'Neil Computer Consulting
Email: David@ONeilComputing.com
Languages: Visual DBase 5.7 and 7.0 using DLL/LIB interface
Peter Jackson
Email: pjackson@nsw.bigpond.net.au
Languages: Toolbook
Robin McDermott
Email: robinm@reseng.com
Languages: Toolbook
W. Scott Morgan
Email: smorgan@perfectdesign.com
Languages: Borland Delphi, Borland C++ Builder, InstallShield