Image processing made easy!

   Attention Sofware Developers! Protect Your Applications From Unauthorized Copying!

ProtectKit3.5

Software Copy Protection Toolkit

For C#, VB.NET, Delphi, C++Builder, VB6, C++6 programming

Single PC Developer's License: US$949.00
 
                              

 

The ProtectKit3.5 stops people from copying your software without your permission

 - Stops software theft by preventing unauthorized copies of your applications from running.
 - Two protection models: Password protection and Network protection.
 - Detects the number of application running on a local area network.
 - Machine specific password protection. Unlock passwords specific to the PC.
 - Passwords unlock applications on one computer. Applications copied to other computers will not run.
 - Flexible hardware parameters allow you to choose hardware signature.
 - Random data added to hardware signature lets you differentiate between computers with identical hardware.
 - 5 different types of unlock passwords.
 - Supports 64 bit operating systems and 64 bit applications.
 - Supports native Win32(64) applications in Delphi, C++Builder, Visual C++, and VB6.
 - Supports .NET applications: Visual Studio 2017, 2015, 2013, 2012, 2010, 2008, and 2005
 - Completely programmable. Lets you create a seamless enduser experience.
 - 100% software solution
 - No special hardware needed: No dongles, usb locks, or other hardware.
 - 3 ways to generate passwords.
 - Create trial versions for your applications.
 - Rent or lease your software applications.
 - Flexible protection periods by days, months, or date.
 - Trial periods by number of uses, number of days, number of months, or expiration date.
 - Start trial from day of first use, from beginning of month of first use, from month following first use.
 - Renewable password protection enabling more uses, days, or months.
 - Be sure that every copy of your software being used has been authorized and paid for!!

 

The ProtectKit3.5 protects your software applications by preventing unauthorized copies of your application from running. With a few simple steps, you can protect your application with one of the strongest copy protection systems available.

The ProtectKit3.5 has two protection models: Password protection and network protection. Password protection locks applications until they are unlocked by a unique password. Network protection provides protection for application running on a local network.

Password protection uses a lockword and the hardware signature of the computer where the application is running to create a unique password that unlocks the application on that computer and only that computer. If the application is copied to another computer, it will not run until it has been unlocked with a new password.

Password protection offers 5 types of protection: standard protection, "number of uses" protection, "number of days" protection, "number of months" protection, and "expiration date" protection. With the ProtectKit3.5, you can set renewable passwords that can enable applications that have exceeded the number of uses, number of days or number of months. Being able to renew an application with a new password after that application has exceeded its allowable uses, days, or months, gives you the ability to rent or lease your software applications. Renew passwords can be generated regularly based on rental or lease agreements with your endusers.

In addition to Password protection, the ProtectKit3.5 offers Network protection for your Win32 (Win64) applications. Network protection detects the number of instances of your application that are running on a network at the same time. The ProtectKit3.5 provides the ability for these applications to communicate with each other letting you, not only detect unauthorized copies, but to disable them as well. With the ProtectKit3.5, you can set the number of applications that you will allow to run simulataneously on a network. 


ProtectKit3.5 Features:

Password protection is available in VB.NET /C#.NET
.NET applications built in .NET Framework 2.0 and above can be protected. Target platforms x86, x64, and AnyCPU supported.

Password and network protection is available for Win32(64) applications.
Protect native Win32(64) applications built in Delphi, C++Builder, VC++, and VB6.

Password protection supports 64 bit operating systems.
Password protection can be used on 64 bit operating systems (both 32 bit applications and 64 bit applications supported)

Password protection supports 64 bit applications.
Password protection can be used with 64 bit applications.

Supports digital signatures
Digitally signed applications can be protected with the ProtectKit3.5.

Special hardware is not necessary
The ProtectKit3.5 is a 100% software solution. It protects your applications from unauthorized copying without the need for any special hardware. There is no need for dongles, usb locks, or other hardware. Protected applications will run on desktop PCs and on laptops.

No additional runtime costs
The ProtectKit3.5 is runtime license free. This means that a registered user of a ProtectKit3.5 PC developer license can protect as many different applications as they wish and deploy an unlimited number of each application without any additional costs, fees, or limitations.

A direct impact on your bottom line
The ProtectKit3 increases revenue because copies of your software that are not authorized by you, will not run until you have authorized them. It is as simple as that. No more pirated software. Every copy of your protected applications currently being used will have been paid for.

ProtectKit3.5 protected applications can be deployed in exactly the same way as your regular applications
Applications protected by the ProtectKit3.5 can be distributed in the same way that you have always distributed your applications (DVD, internet download, email distribution, CD-ROM, Floppy Disk, etc). Because the ProtectKit3.5 protection is embedded within your application, there is no need to change the way you deploy your applications.

The ProtectKit3.5 can detect when unauthorized copies of your software are running on a local area network. (Not available for .NET applications)
When copies of your protected application are running on a network, by using Network protection, you can detect and control how many instances of your application are running. You can verify how many are running, whether they are authorized and can disable applications when they are not.

Using the ProtectKit3.5, you can rent or lease your applications
Because you have the option of allowing renewable passwords, you can authorize your application to work for a specific period of time or number of uses. After that has been exceeded, the application will be locked until a renew password is generated. Each time a renew password is used, it will enable the application to run again but only for the specified number of uses, days, or months. By setting "number of use", "number of days", or "number of months" protection with renewable passwords, you have the ability to renew the application letting you rent or lease software.

The ProtectKit3.5 retrieves a hardware signature from the computer that is running your application
The ProtectKit3.5 uses a combination of a lockword and the hardware signature where the application is running to create a unique password. Even after the application has been unlocked on one computer, if that application is copied to a different computer, it will not run. The ProtectKit3.5 allows you to determine what combination of hardware will comprise a unique hardware signature (CPU, Motherboard, Videocard, NetworkCard). This gives you added flexibility when protecting your application. In addition to this, if your enduser's system crashes and they must format their hard drive, as long as the hardware signature has not changed, the same password will unlock your application on the new hard drive. There is no need for the enduser to request a new password from the application vendor.

Add random data to hardware signature
You can choose to add random data to your hardware criteria. This lets you distinguish between two computers that have identical hardware.

3 ways to generate passwords
The ProtectKit3.5 provides you with three types of password generators so that you can provide passwords to your users seamlessly. The password generator EXE is a runtime password generator that doesn't require any programming. Simply enter the lockword and the hardware signature (PcID) from the enduser's computer and you can generate the password needed to unlock that application on that computer. The password generator OCX and DLL provide a programmable API that allows you to generate the needed passwords programmatically. The Email API gives you an easy seamless way to send the generated passwords to the enduser so they can unlock the application.

 

How To Protect Your Applications

Password Protection

Password protection allows you to lock your application until it is unlocked by a password. The ProtectKit3.5 Password protection uses a combination of a lockword that you determine and a unique hardware signature that is retrieved from the enduser's computer. With these two unique pieces of information, a password is generated that will unlock the application on that computer and only that computer. If the unlocked application is copied to another computer, it will not run (unless it is unlocked on that computer with a different password).

The ProtectKit3 provides you with a variety of different types of password protection.

1. Standard Protection:
This type of protection locks the application until it it unlocked with a password. After it has been unlocked, the application will run on that computer indefinitely. If the protected application is copied to another computer, it will not work until unlocked on the new computer. There is no "renewal password" option with this type of protection.

2. Number of Uses Protection:
This protection sets the number of times an application can be used. The application can be used for the specified number of uses. Each time the application starts up, that is counted as one use. After the number of allowable uses has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked, the application will run indefinitely. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

There is a "renewable" password option with this type of protection. This option allows the protected application to run for the specified number of uses. After the number of allowable uses has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked with a new password, the application will not run indefinitely but will only run again for the number of allowable uses. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

3. Number of Days Protection:
This protection sets the number of days an application can be used. The application can be used for the specified number of days. After the number of allowable days has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked, the application will run indefinitely. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

There is a "renewable" password option with this type of protection. This option allows the protected application to run for the specified number of days. After the number of allowable days has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked with a password, the application will not run indefinitely but will only run again for the number of allowable days. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

4. Number of Months Protection:
This protection sets the number of months an application can be used. The application can be used for the specified number of months. After the number of allowable months has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked, the application will run indefinitely. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

There is a "renewable" password option with this type of protection. This option allows the protected application to run for the specified number of months. After the number of allowable months has been exceeded, the application is locked and will remain locked until it is unlocked with a password. After being unlocked with a password, the application will not run indefinitely but will only run again for the number of allowable months. At any time, if the protected application is copied to another computer, it will not work until unlocked on the new computer.

5. Expiration Date Protection
This protection sets the date after which an application will be locked. The application will run until the specifed date is exceeded. After the specified date, the application is locked and will remail locked until unlocked with a password. After being unlocked, the application will run indefinitely. There is no "renewal password" option with this type of protection.

The above protection types can also be applied to a specific feature of your application!

 

What steps are needed to add password protection to my applications?

Adding password protection to your application is very easy:
     1. Set ProtectKit code in your application.
     2. Set protection information using the "Set Password Protection Tool".
     3. Deploy Application.
     4. Generate a password and send it to the user.

.NET Example: (in Visual Basic .NET)

 Step 1:   Initialize the ProtectKit in your application code

Initializing the ProtectKit3.5 in the Form Load event:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
passwordProtect1.DllFileName = "ProFuncNET32.dll"

     Dim ret As Integer = passwordProtect1.Initialize("VB_Sample1.exe", "ProInfo32.dll")
     If (ret <> 0) Then
          Select Case (ret)
               Case -1 : MessageBox.Show("Unable to run application.")
               Case 1 : MessageBox.Show("Service is not running.")
               Case 2 : MessageBox.Show("Unable to load protection information file.")
               Case 3 : MessageBox.Show("Lockword is incorrect.")
               Case 4 : MessageBox.Show("Application must run on a local disk.")
               Case 5 : MessageBox.Show("An error has been generated")
          End Select
          Me.Close()
     End If

     Dim s As String = passwordProtect1.GetLockword()
     Dim ChkLockword() As String = "AbcdefgH"
     If (s <> ChkLockword) Then
          MessageBox.Show("Lockword is incorrect.")
          Me.Close()
     End If
     label1.Text = "OK"
End Sub

Retrieve the computer's Hardware Signature (PcID):

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
     textBox1.Text = passwordProtect1.QueryPcID()
End Sub

Set the Password:

Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
       passwordProtect1.SetPassword(textBox2.Text)
End Sub

Check Protection Status:

Private Sub button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button3.Click
Dim ret As Integer = passwordProtect1.QueryProtect()
Select Case ret
Case -1 : label4.Text = "Unable to run application."
Case 0 : label4.Text = "Application is unlocked."
Case 1 : label4.Text = "Application is locked."
Case 2 : label4.Text = "Exceeded allowable number of uses."
Case 3 : label4.Text = "Exceeded allowable number of days."
Case 4 : label4.Text = "Exceeded allowable number of months."
Case 5 : label4.Text = "Application has expired."
Case 6 : label4.Text = "Computer's clock has been turned back."
Case 7 : label4.Text = "Computer is different."
Case 8 : label4.Text = "Protection file is incorrect."
Case 9 : label4.Text = "Lockword is incorrect."
Case 10 : label4.Text = "Password is incorrect."
Case 11 : label4.Text = "Other"
Case 12 : label4.Text = "Using an improper protection file."
End Select
'...Other programming code....
End Sub

 

 Step 2:   Set protection information

Use the Set Password Protection tool to set protection information into your application:

This tool writes protection information into a "protection information file" and also writes the same information into a file that is added to your application as a resource.

Password protection allows you to enable your applications in a variety of ways. Standard protection locks the application until it is unlocked. "Number of uses", "Number of days", "Number of months" and "Expiration date" protection allow you to set how many times the application can be used, or for how many days, or months it will run. "Expiration date" protection sets a date after which the application stops running. The "renewable passwords" feature lets you re-enable an application that has stopped and it will be enabled again for the specified number of uses, days, or months.

 

 Step 3:   Embed the protection file into your application

In Step 2, the Set Password Protection tool, generated two files; a protection information file and another file containing the protection information that will be embedded in your application. To embed this file, use the Stream property of the PasswordProtect class.

How To Embed Protection Information:

There are two ways to embed the protection information into your application:

1. Open your application project, select the PasswordProtect class.
In the Properties window, click on button at the right of the Stream property (see image below) and set the path to the embedded protection file.

2. Open your application project and add the protection file to your project.
In the Properties Window, set the file's build action to "Embedded Resource".

After embedding the protection information, build the application.
Performing Steps 2 and 3, prior to Step 1, allows you to debug the protection portion of your code.

 

 Step 4:   Obfuscate your application

If you are obfuscating your compiled application, do that at this step. If you are not obfuscating your application, proceed to Step 5.

We highly recommend that you obfuscate your .NET applications. If your applications and resource files are not obfuscated, program code may be readable if your application is decompiled and your lockword and other protection information may be exposed. Obfuscating your .NET application and resource files using string encryption will prevent your programming code and protection information from being exposed. 

 

 Step 5:   Digital signature

If you are digitally signing your application, do that at this step. If you are not digitally signing your application, proceed to Step 6.

 

 Step 6:   Deploy your application

Deploy your application and all its associated files to the target machine.

 

 Step 7:   Generate a password to unlock the application and send it the user

Three types of Password Generators

The ProtectKit3.5 ships with three password generating programs. The runtime Password Generator (EXE) is an application that allows you to enter a lockword and a PcID to generate a password manually, without any need for programming. Using the lockword from Step 2 and the PcID retrieved from the enduser's computer, you can generate an unlock password, which you send to the enduser to unlock the application.

The Password Generator EXE

 

The Password Generator OCX and DLL files

These files provide the password generating functions in an easy to use API. This allows you to generate passwords programmatically using the lockword and retrieved PcID. You can also send the generated passwords to your users. These programming API allow you to do this seamlessly.

Below is sample code from a web application that uses VBScript to generate the password.

Set objCOM = Server.CreateObject("Pr3PassGen.PassGen")
objCOM.LockWord = varLockword
objCOM.PCID = varPCID
objCOM.PasswordType = varType
varUnlockword = objCOM.PS3GetPassword
Set objCOM = nothing

Here is Visual Basic code that uses the EMail API

ret = PS3SendMail("msv.newtone.co.jp", "info@newtone.co.jp", _
"NEWTONE", "paul@company.com", "Users", _
"PassWord Information", "Below is the password needed to unlock....")

 


 

Win32 (Win64) Example: (in Visual Basic)

 Step 1:   Initialize the ProtectKit in your application code

Initializing the ProtectKit3.5 in the Form Load event:

Private Sub Form_Load()
     Dim LockWord As String * 9
     Dim ChkLockword As String
     Dim LockwordLen As Long
     .
     ret = PK3Initialize("Project1.exe", "ProInfo.dll")
     If ret <> 0 Then
          If ret = 1 Then Msg= "Unable to run application."
          If ret = 2 Then Msg= "Unable to load protection information file."
          If ret = 3 Then Msg= "The lockword is incorrect."
          .
          End
     End If

     LockwordLen = PK3GetLockword(LockWord)
     ChkLockword = "Ab" & "cd" & "ef" & "gH"
     If LockwordLen <> 8 Or ChkLockword <> Left(Lockword, LockwordLen) Then
          End
     End If
End Sub

Retrieve the computer's Hardware Signature (PcID)

Private Sub Command1_Click()
Dim str As String * 65
Dim strLen As Long
...
ret = PK3QueryPcID(str, strLen)
Text2.Text = str
...
End Sub

Set the Password

Private Sub Command2_Click()
ret = PK3SetPassword(Text1.Text)
End Sub

Check Protection Status

Private Sub Command3_Click()
ret = PK3QueryProtect()
If ret = 0 Then Msg = "Application is unlocked."
If ret = 1 Then Msg = "Application is locked."
If ret = 2 Then Msg = "Exceeded allowable number of uses."
    .
End Sub

 

 Step 2:   Set protection information

Use the Set Password Protection tool to set protection information into your application:

This tool writes protection information into a "protection information file" and also embeds the same information into your compiled application.

 

 

 Step 3:   Digital signature

If you are digitally signing your application, do that at this step. If you are not digitally signing your application, proceed to Step 4.

 

 Step 4:   Deploy your application

Deploy your application and all its associated files to the target machine.

 

 Step 5:   Generate the password and notify the user

The Password Generator

The ProtectKit3.5 provides several ways to generate passwords. The runtime Password Generator (EXE) allows you to enter a lockword and a PcID and generate a password manually. For example, using the lockword from Step 2 and the PcID retrieved from the user's computer, you can generate a password, which you send to the enduser so that they can unlock the application.

Password Generator EXE

Password Generator OCX and DLL

These files provide the password generating functions in a useful API. This API allows you to generate passwords programmatically from the lockword and retrieved PcID and to send the passwords to your users.

Below is an example of a web application that uses VBScript code to to generate a password.

Set objCOM = Server.CreateObject("Pr3PassGen.PassGen")
objCOM.LockWord = varLockword
objCOM.PCID = varPCID
objCOM.PasswordType = varType
varUnlockword = objCOM.PS3GetPassword
Set objCOM = nothing

Here is Visual Basic code that uses the EMail API

ret = PS3SendMail("msv.newtone.co.jp", "info@newtone.co.jp", _
"NEWTONE", "paul@company.com", "Users", _
"PassWord Information", "Below is the password needed to unlock....")

 


 

Types of Password Protection:

Protection Type Protected Application
Standard Protection The application will be locked until it is unlocked with a password. Once the application is unlocked it will run indefinitely on that computer. There are no renewable passwords with Standard Protection.
Number of Uses Protection The application will run until the specified number of uses are exceeded. Once exceeded, the application will be locked until it is unlocked with a password. If ordinary passwords are used with this application then when it is unlocked, the application will run indefinitely. If renewable passwords are used with this application then when unlocked, the application will run again for the specified number of uses.
Number of Days Protection The application will run until the specified number of days are exceeded. Once exceeded, the application will be locked until it is unlocked with a password. If ordinary passwords are used with this application then when it is unlocked, the application will run indefinitely. If renewable passwords are used with this application then when unlocked, the application will run again for the specified number of days.
Number of Months Protection The application will run until the specified number of months are exceeded. Once exceeded, the application will be locked until it is unlocked with a password. If ordinary passwords are used with this application then when it is unlocked, the application will run indefinitely. If renewable passwords are used with this application then when unlocked, the application will run again for the specified number of months.
Expiration Date Protection This protection sets the date after which an application will be locked. The application will run until the specifed date is exceeded. After the specified date, the application is locked and will remail locked until unlocked with a password. After being unlocked, the application will run indefinitely. There is no renewal password option with this type of protection.
Renewable Password Option For protection types 2, 3, and 4. Expired application can be enabled again for the specified number of uses, days, or months.

 


 

Network Protection

Network protection allows you to detect the number of instances of your application that are running on a local network at the same time. Because the ProtectKit3.5 allows the instances of your application to communicate with each other, you are able to detect the number of instances running, retrieve and confirm serial numbers or other information, and disable applications.

Network protection is available for Win32 (Win64) applications only. Network protection does not support .NET applications.

Win32 (Win64) Example:(in Visual Basic)

 Step 1:   Initialize the ProtectKit in your application code

Private Sub Form_Load()
     Dim GetNetword As String * 65
     Dim Netword As String
     Dim ChkNetword As String
     Dim NetwordLen As Long
     Dim net As PROTECTKIT3NET
     Dim ret As Integer

     net.szAppID = "12345678.VB6" & Chr$(0)      'Setting an ID for the application
     net.szMessage = Text1.Text & Chr$(0)      'The message to be transmitted
     net.lSendTime = Val(Text3.Text)      'Interval timer (in seconds)
     net.hWndHandle = Me.hWnd      'Window handle
     ...
     ret = PK3NETInitialize(net, "Project1.exe", GetNetword, NetwordLen)
     ChkNetword = "A" & "b" & "c" & "d" & "e" & "f" & "g" & "H"
     If NetwordLen > 0 Then
          Netword = Left$(GetNetword, NetwordLen)
     End If
     If ret = False Or ChkNetword <> Netword Then
          MsgBox "The Netword is incorrect."
          Exit Sub
     End If
     ret = PK3NETStartNet
End Sub

End processing

Private Sub Form_Unload(Cancel As Integer)
     PK3NETStopNet
End Sub

Checking for applications running on other computers

Private Sub Form_Resize()
     Dim ret As Long
     Dim msg As PROTECTKIT3NET_MSG
     ...
     'retrieve the transmitted message
     ret = PK3NETGetMessage(msg)
     If ret <> False Then
          Text2.Text = Left(msg.szMessage, msg.lMessageLen) 'Receive message
          Text4.Text = Left(msg.szPcName, msg.lPcNameLen)
          Text5.Text = Left(msg.szMacAdr, msg.lMacAdrLen)
          Beep
     End If
End Sub

 

 Step 2:   Set the Netword

Use the Set Network Protection tool to set the netword into the application file.

 

 Step 3:   Digital signature

If you are digitally signing your application, do that at this step. If you are not digitally signing your application, proceed to Step 4.

 

 Step 4:   Deploy your application

Deploy your application and all its associated files to the target machine. It is not necessary to generate a password and send it to the enduser.

 

 

ProtectKit3.5 Licensing

The ProtectKit3.5 license is a "PC developer" license.
This means that a seperate license is required for each computer where the ProtectKit3.5 is used to develop software.

For example:

If the ProtectKit3.5 is used by only one person on one computer, then only one PC developer license is required.
If the ProtectKit3.5 is used by only one person, but this person uses it on two computers, then 2 PC developer licenses are required.
If two software developer's use the ProtectKit3.5 but only on one computer, then only one license is required.

For software developers who require multiple licenses, we have multiple license packs available at a significant discount. For more details about licensing, please refer to our licensing page or contact us at sales@imagekit.com.

ProtectKit3.5 Runtime License

The ProtectKit3.5 is runtime license free for all registered developers. The registered developer can make as many different runtime applications as they wish and they can distribute as many of each of these applications as they wish with out limit, additional fees, or royalties. Only registered users are allowed to do this. To register, simply send us your contact information along with the serial number of the ProtectKit3.5 that you are using to register@imagekit.com. For more information, please visit our user registration page.

The ProtectKit3.5 can only be registered to the person using it. It cannot be registered to a company, a group, or any other entity.

USER REGISTRATION IS NOT TRANSFERRABLE WITHOUT EXPRESSED WRITTEN PERMISSION FROM NEWTONE CORPORATION.

Suggested Retail Price

ProtectKit3.5 PC Developer License                              US$949.00
(1 Single PC Developer License)

Multiple licenses are available at a discount from our online store

Supported Environment

ProtectKit3.5

Supported OS
Microsoft Windows 10 / 8.1 / 8 / 7 / Vista / XP / Server 2016 / Server 2012 / Server 2008 R2 / Server 2008 / Server 2003

Supported Development Container
Native Applications (Password Protection and Network Protection)
Visual Basic 6.0, Visual C++ 2015 / 2013 / 2012 / 2010 / 2008 / 2005 / 2003 / 6.0, Embarcadero RAD Studio Rio 10.3 / Tokyo 10.2 / Berlin 10.1 /Seattle 10 / XE8 / XE7 / XE6 / XE5 / XE4 / XE3 / XE2 / XE / 2010, (C++Builder Rio 10.3 / Tokyo 10.2 / Berlin 10.1 / Seattle 10 / XE8 / XE7 / XE6 / XE5 / XE4 / XE3 / XE2 / XE / 2010, Delphi 10 Seattle / XE8 / XE7 / XE6 / XE5 / XE4 / XE3 / XE2 / XE / 2010), CodeGear RAD Studio 2009 (C++Builder 2009 / Delphi 2009 for Win32), CodeGear RAD Studio 2007 (C++Builder 2007 / Delphi 2007 for Win32), Borland Developer Studio 2006 (C++Builder / Delphi for Win32), Delphi 2005(Win32) / 7 / 6 / 5, C++Builder 6 / 5

CLR Applications (Password Protection Only)
Visual Studio 2015 / 2013 / 2012 / 2010 / 2008 / 2005

IMPORTANT: Computers with multiple CPUs, multiple video or network cards, may not have a consistant hardware signature and may experience problems with the ProtectKit3.5.