Licence Protector

Windows Vista / Windows 7 Guide

Hide Navigation Pane

Windows Vista / Windows 7 Guide

Previous topic Next topic  

Windows Vista / Windows 7 Guide

Previous topic Next topic JavaScript is required for the print function Mail us feedback on this topic!  

As a licensing and copy protection system hooks deeply into the Windows operating system, it often requires modifications.

 

Licence Protector is fully Windows Vista compatible:

 

Considers registry limitations
Runs with limited user rights
Offers a signed DLL

 

To use your application with Licence Protector and Windows Vista only a few modifications are necessary:

 

Install Licence Protector version 2.51 or higher
Use the signed EasyGo.DLL
Install the license file to C:\ProgramData\yourcompany name\appname\app.lic - see details

 How to retrieve the correct folder name

Considerations

The installation has to be done in administrator mode. A user with a standard account will automatically be prompted to provide administrator credentials.

 

If User Account Control is enabled (default) the following installation scenario is NOT working.

 

install the licence file to C:\Program Files\YourApp\app.lic

 

If the standard user starts your application, Licence Protector will write back information in the licence file (depending on the features your are using). The file would be virtualized to the folder C:\Users\username\AppData\Local\VirtualStore\Program Files\YourApp\app.lic.

 

Although your application would open the licence file on C:\Program Files\YourApp\app.lic, the file would be opened in c:\Users\username\AppData\Local\VirtualStore\Program Files\YourApp\app.lic. The result would be that each user has a different licence file.

Recommendation

Although we found no recommended procedure from Microsoft how to share a file on one PC for all users, the following installation process will work.

 

Install the licence file to C:\ProgramData\yourcompany name\appname\app.lic

 

By default, standard users have only Read access and the folder is not visible. See below how to set write access to this folder.

Retrieve folder names

You can retrieve the folder name via the registry.

 

 

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Shell Folders

Common AppData

C:\ProgramData\

Common Programs

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Common Documents

C:\Users\Public\Documents

Common Desktop

C:\Users\Public\Desktop

Common Start Menu

C:\ProgramData\Microsoft\Windows\Start Menu

CommonPictures

C:\Users\Public\Pictures

CommonMusic

C:\Users\Public\Music

CommonVideo

C:\Users\Public\Videos

Common Favorites

none

Common Startup

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Common Templates

C:\ProgramData\Microsoft\Windows\Templates

Common Administrative Tools

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools

Personal

none

Set write access for the group 'users' to this folder - see details

 

Some installers have built in options to change rights on folders. You cannot use the standard Windows tool cacls.exe or icacls (Vista) because you have to address the user / group name you want to change in the language of the operation system - e.g. 'users' or 'Benutzer'.

 

There is a tool SetAcl.exe which allows using SID to change the permission. The tool can be downloaded here: http://setacl.sourceforge.net/html/examples.html . Documentation for the SID can be found here (only German): http://www.grurili.de/index.html?/Grundlagen/WellKnown_SIDs.htm

 

Your installer could use the following sequence

 

Copy setacl.exe to the installation directory
Execute Setacl.exe e.g. "maindir\SetAcl.exe" -on "maindir" -ot file -actn ace -ace "n:S-1-5-32-545;p:full;s:y" - This will set full rights to the group users. The SID S-1-5-32-545 is used instead of the name users
 
(note: maindir is the folder name like c:\ProgramData\yourcompany name\appname)
Delete setacl.exe

 

 

Problems to register a DLL in Vista / Windows 7

         Check comments how to register a DLL and which problems may occur

Installation of the DLL

 

The folder ..\files for distribution contains all Licence Protector DLLs. There is an folder with a compressed version and uncompressed version. We recommend using the uncompressed version because it works with all compilers and operating systems.

 

There is an option to install the DLL without registering it. This allows to install without administration rights. See details - use DLL without registering.

 

The installation has to be done in administrator mode. A user with a standard account will automatically be prompted to provide administrator credentials. Make sure that you use the option in your installer: Require Administrator so that the installer compiles with a manifest file, which always requires the installation package to run as an administrator.

 

You should copy the licprotectorxy.dll to the \windows\system32 folder although it could also be installed in your program directory. As each DLL version of Licence Protector has an own ProgID, multiple different versions can be installed on the same machine.

 

If an installation tool like Wise or Install Shield is used, the registration of the DLL is done automatically by these tools. If you copy the DLL manually with your program, you have to register the DLL manually - use c:\windows\system32\regsvr32.exe ....\pathname\LicProtector300.dll.

 

 

If your installer has problems registering a DLL, add a shell execute command in the installer which invokes the regsvr32.exe like Execute "c:\windows\system32\regsvr32.exe"  " ....\pathname\Licprotector300.dll"

 

To register the DLL you need admin rights. If you would use regsvr32 in the DOS prompt or file explorer as a standard user, you get the error 0×80070005 meaning access “Access Denied. To manually register the DLL in Vista / Windows 7

 

right click on “Command Prompt” in Accessories and click “Run as Administrator
run “regsvr32 ....\pathname\LicProtector300.dll” in the command window

 

Vista / Windows 7 and MSI files
Some installers generate a message HRESULT -2147220472 or -2147023898. This is due to missing rights during installation. Use regsvr32.exe to register the DLL and not the installer built in dll register function.

 

 

 

Sign your installer file to avoid error messages after download or after starting the installer  see details
How to sign installation file

Sign your Installer file

Although you could deliver an unsigned installer file, we recommend adding your digital signature. You can buy a code-signing certificate from one of the accredited providers like www.verisign.com, www.thawte or www.comodo.com.

 

With the digital signed installer file your users do not get warning messages when they download the file or start the file.

 

First check your installation tool if it supports to add a digital signature. As installers often add their own CRC checks a digital signature would destroy the installer file. Therefore the installer tool has to add the signature first before the CRC check is added.

 

Visual Studio 2005, 2008 - special considerations

 

In Visual Studio 2008 or Visual Studio 2005 with .NET Framework 2.0 SP1, generated EXE files have a Data Execution Prevention flag set. To get your application running under Windows Vista / Windows 7, you need to remove this flag.

 

If you get an error message with the 800703e6 then the cause is the DEP flag.

 

You can use the following batch script to remove it (for VS 2008):

 

 

call "%VS90COMNTOOLS%vsvars32.bat"
editbin.exe /NXCOMPAT:NO YourApplication
pause

 

If the environment variable %VS90COMNTOOLS% is not set or points to the wrong directory, then search for the vsvars32.bat. The bat file is for the default installation in the folder c:\programs\microsoft visual studio9.0common7\tools

 

You could also use a post-built event using this command line:

 

call "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"

 

Compiler settings for DEP Flag

 

For further information have a look at the following page:
http://blogs.msdn.com/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx

 

 

 

 

Starting with Service Pack 2.6.4 the compile switch is no longer required, if you use the uncompressed DLL version in the folder Licence Protector\3.0\files for distribution\signed-uncompressed.

 

Visual Studio allows an installation without registering the DLL. See details - use DLL without registering the DLL.

 

 

See also 64bit operating systems.

 

 

 

Code Protection with Multimedia Protector

To protect the code against de-compilation or reverse engineering, you can combine Licence Protector with Multimedia Protector for a special bundle price.

 

See chapter: Code Protection / Decompile Protection

 

 

 

Vista / Windows 7 64bit

Licence Protector is a 32bit DLL. It runs on 64bit operating systems like Vista / Windows 7 64bit or Windows 2008 Server 64bit as long as the main application is compiled for 32bit.

 

A version for 64bit compile is available, starting from Licence Protector version 3.1.

 

Versions below 3.1 require the following compile settings. NET applications require to be compiled for x86 CPU. A compile setting for any CPU will generate an error 80040154 at runtime.

 

Find below how to change the settings for Visual Basic 2008. Other .NET compilers have a similar option.

 

To change the platform open the project properties and click under the submenu "Compile" on the button "Advanced Compile Options...": 

 

Advanced Compile Options

 

 

Now you can change Target CPU from "Any CPU" to "x86".

 

 

 

 

 

 

Filenames in Vista / Windows 7

 

A file name, which has words  like setup or install in the name, would have as a result, that the file needs administration rights. In Vista / Windows 7, the UAC (user account control) would pop-up. For more details about EXE names and Vista read this blog.