Q: Software Protection

G

Geoff Jones

Hi

Does anybody know where I can find some tutorials/sample code to add
software protection to a standalone vb.net application?

Thanks in advance

Geoff
 
G

Geoff Jones

Hi Cor/Herfried

I'm sorry, I think I've mislead you. Rather than stopping people from
examining the code, I want to add code to my application to make users enter
a serial code, for example, before they can use the application.

What I have in mind is that they install the software and during its first
run it generates a code. The user then contacts me with this code and I send
them another code to unlock the software (ideally for a specific amount of
time).

Geoff
 
G

Geoff Jones

Thanks Cor.

Another piece of information. I don't necessarily assume that the client
machine will have access to the internet i.e. they may have to phone through
the access key.

Geoff
 
C

Carlos J. Quintero [.NET MVP]

Hi Geoff,

It does not matter which method you use (own code or commercial solution),
you still need an obfuscator to try to prevent other understanding your
protection.

--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio .NET, VB6, VB5 and VBA
You can code, design and document much faster.
Free resources for add-in developers:
http://www.mztools.com
 
G

Geoff Jones

Hi Carlos

Yes, good point. I've taken that on-board.

Maybe I'll start writing something from scratch. Can anybody suggest a way
of getting information from the client computer which is unique and I can
use to generate the key? For example, a CPU number (if such a beast exists).
Some example code would be great.

Thanks in advance

Geoff
 
H

Herfried K. Wagner [MVP]

Geoff,

Geoff Jones said:
I'm sorry, I think I've mislead you. Rather than stopping people from
examining the code, I want to add code to my application to make users
enter a serial code, for example, before they can use the application.

Free components:

Aspose.License
<URL:http://www.aspose.com/Products/Aspose.License/>

Commercial components:

XHEO|Licensing
<URL:http://www.xheo.com/products/enterprise/licensing/>

Infralution Licensing System
<URL:http://www.infralution.com/licensing.html>
 
M

Mythran

Geoff Jones said:
Hi Carlos

Yes, good point. I've taken that on-board.

Maybe I'll start writing something from scratch. Can anybody suggest a way
of getting information from the client computer which is unique and I can
use to generate the key? For example, a CPU number (if such a beast
exists). Some example code would be great.

Thanks in advance

Geoff

Try the MacAddress.
:)

Imports System.Management

Dim management As ManagementClass = _
New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim col As ManagementObjectCollection = management.GetInstances()
Dim addr As String

For Each mgr As ManagementObject In col
If mgr.Item("IPEnabled")
addr = mgr.Item("MacAddress").ToString()
Exit For
End If
Next

Mythran
 
G

Geoff Jones

Thanks Mythran. An interesting idea. Will any computer have this or only
ones on a network?

Geoff
 
M

Mythran

Geoff Jones said:
Thanks Mythran. An interesting idea. Will any computer have this or only
ones on a network?

Geoff

Being that the definition of a MAC address is:

"a hardware address that uniquely identifies each node of a network"

I would say that those that either are on a network that supports IEEE 802
or has an installed IEEE 802 supported network card would have a MAC
address...but I'm not positive.

Mythran
 
J

Jonathan Allen

MAC ids are generally hard-coded into the network card itself. So if the
user changed network cards, you need to make sure the program doesn't die.

Isn't there a unique id generated when the OS is installed? If so, that
would be safer.
 
G

Geoff Jones

Hi Jonathan

Yes, I seem to remember someone saying that there is another way of getting
a unique number for a computer. Maybe somebody can remind me?

Geoff
 
C

Cor Ligthert

Johathan,
Isn't there a unique id generated when the OS is installed? If so, that
would be safer.
There is an OS number however that is not unique.

The approach you want to take is often tried, however look what Geoff said.

I thought to remember me, that there was once a company (I thought the name
was Frameworks or shomething). It was the in that time best seller for
things like what is now Windows and Excel on the IBM PC. They had protected
their software using the 10 Mb disk from the IBM PC. However you could only
use that 10Mb disk and replacing it to an other IBM standard 10Mb disk was a
crime and I thought that you had to contact them for that.

Maybe you know what company that was?

Cor
 
C

C-Services Holland b.v.

Jonathan said:
MAC ids are generally hard-coded into the network card itself. So if the
user changed network cards, you need to make sure the program doesn't die.

Isn't there a unique id generated when the OS is installed? If so, that
would be safer.

Most cards let you set the MAC address in the driver. I've done that on
both my linux and my windows box in the past. So inserting a new card
and giving it the old MAC address is quite simple.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Tutorial for Beginner 1
Q: Determing in a column in a datagrid 3
Q: Path to Windows? 3
Q: Version number 3
Q: moving dashed line 4
Q: class 4
Q: ComponentOne for .NET 3
using a form added as a resource 2

Top