Home All Groups Group Topic Archive Search About

How to protect software?

Author
31 Jan 2006 10:03 AM
SK
I have developed a small program (3MB) that is used as a tool form
bigger business application. This tool program is password protected
and I know all users, but I fear that this tool is being passed to
clients of business application - together with password. This means
that users can do things, which are not possible in business
application - alter data etc.

I would like to copy protect this tool. Has anyone had / has similar
problems?

Profesional copy protection software is out of the question - we are
talking about 50 copies of the tool max.

I browsed the web, but found no solution. Can someone give me some
pointers?

SK

Author
31 Jan 2006 1:16 PM
J French
On Tue, 31 Jan 2006 11:03:32 +0100, SK <s*@email.si> wrote:

>I have developed a small program (3MB) that is used as a tool form
>bigger business application. This tool program is password protected
>and I know all users, but I fear that this tool is being passed to
>clients of business application - together with password. This means
>that users can do things, which are not possible in business
>application - alter data etc.
>
>I would like to copy protect this tool. Has anyone had / has similar
>problems?
>
>Profesional copy protection software is out of the question - we are
>talking about 50 copies of the tool max.

You can't prevent a file from being copied
- however you can make an EXE know something about the machine that it
is running on and check that it is running on the same machine

The simplest thing is to look for the Volume ID and its serial number,
you can store the CRC of those in a plain text file and 'lock' the
file with another CRC which will make it murder to manually edit

Finding unique things on a machine is a bit tricky, one can get the
serial number on some hard disks

See this thread for a method - also some useful comments
http://tinyurl.com/7vakn

You can also stick something in the Registry on first 'installation'

Probably your best bet is to use a combination of these methods

Another useful trick is to use 'one time' passwords so that you can
allow users to set up their password while talking to you on the
'phone

This involves the software popping up a word or some numbers that
contain the date and time of the machine (ticks from midnight is good
for a start) in an encrypted format, you decrypt it and issue a reply
which the user enters, the software decrypts and checks for validity
- if Ok the user can then continue

The useful thing about this is that the 'reply' you send will only
work when the machine is in exactly the same state, which will prevent
users getting sneaky and trying to re-use the 'reply'
Author
31 Jan 2006 2:25 PM
George Bashore
SK
Since you know all the users maybe you could password it by current
username.  Something like this.
Change the Case to your users


Option Explicit

Private Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Dim UserName As String
Public LoginSucceeded As Boolean

Public Function CurrentUserName() As String
    Dim myBuffer As String
    Dim myBufferLength As Long
    Dim RetVal As Long
    myBufferLength = 255
    myBuffer = Space(myBufferLength)
    RetVal = GetUserName(myBuffer, myBufferLength)
    CurrentUserName = UCase(Left$(myBuffer, myBufferLength - 1))
End Function

Private Sub Form_Load()
Call CurrentUserName
UserName = CurrentUserName
    Debug.Print UserName
        Select Case UserName
        Case UCase("George Bashore")
            LoginSucceeded = True
            Form1.Show
        Case UCase("YourName")
            LoginSucceeded = True
            Form1.Show
        Case UCase("SomeOtherName")
            LoginSucceeded = True
            Form1.Show
        Case Else
            LoginSucceeded = False
            MsgBox "Invalid User, try again!", , "Login"
            Unload Me
        End Select
End Sub


George


Show quoteHide quote
"SK" <s*@email.si> wrote in message
news:fjcut1h5ro3712qqdr8964fhqd68q5ohp4@4ax.com...
>I have developed a small program (3MB) that is used as a tool form
> bigger business application. This tool program is password protected
> and I know all users, but I fear that this tool is being passed to
> clients of business application - together with password. This means
> that users can do things, which are not possible in business
> application - alter data etc.
>
> I would like to copy protect this tool. Has anyone had / has similar
> problems?
>
> Profesional copy protection software is out of the question - we are
> talking about 50 copies of the tool max.
>
> I browsed the web, but found no solution. Can someone give me some
> pointers?
>
> SK
Author
31 Jan 2006 3:50 PM
Saga
Since what you are looking for is casual protection, perhaps this
can help you:

http://www.activelock.com/

This is a freely available component that integrates with your s/w
and provides some degree of protection.

Good luck!
Saga


Show quoteHide quote
"SK" <s*@email.si> wrote in message
news:fjcut1h5ro3712qqdr8964fhqd68q5ohp4@4ax.com...
>I have developed a small program (3MB) that is used as a tool form
> bigger business application. This tool program is password protected
> and I know all users, but I fear that this tool is being passed to
> clients of business application - together with password. This means
> that users can do things, which are not possible in business
> application - alter data etc.
>
> I would like to copy protect this tool. Has anyone had / has similar
> problems?
>
> Profesional copy protection software is out of the question - we are
> talking about 50 copies of the tool max.
>
> I browsed the web, but found no solution. Can someone give me some
> pointers?
>
> SK