By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,239 Members | 1,503 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,239 IT Pros & Developers. It's quick & easy.

Q: Software Protection

P: n/a
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
Nov 21 '05 #1
Share this Question
Share on Google+
16 Replies


P: n/a
Geoff,

Search the general and the language newsgroups for obfuscator. You find than
very much answers and long discussion threads. (Especially in general)

This is in languages.VB

http://groups-beta.google.com/group/...rch+this+group

I hope this helps,

Cor
Nov 21 '05 #2

P: n/a
"Geoff Jones" <no********@email.com> schrieb:
Does anybody know where I can find some tutorials/sample code to add
software protection to a standalone vb.net application?


<URL:http://msdn.microsoft.com/vcsharp/team/tools/default.aspx#obfuscators>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Nov 21 '05 #3

P: n/a
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

"Herfried K. Wagner [MVP]" <hi***************@gmx.at> wrote in message
news:uC*************@TK2MSFTNGP09.phx.gbl...
"Geoff Jones" <no********@email.com> schrieb:
Does anybody know where I can find some tutorials/sample code to add
software protection to a standalone vb.net application?


<URL:http://msdn.microsoft.com/vcsharp/team/tools/default.aspx#obfuscators>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Nov 21 '05 #4

P: n/a
Geoff,

Nick Patterman (in the time he was still using the Nick Nak) has been
extremely been busy with that.

http://groups-beta.google.com/group/...rch+this+group

Nick is always prepared to help other people, however I did not see him a
while now.

I hope this helps,

Cor
Nov 21 '05 #5

P: n/a
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

"Cor Ligthert" <no************@planet.nl> wrote in message
news:uk**************@tk2msftngp13.phx.gbl...
Geoff,

Nick Patterman (in the time he was still using the Nick Nak) has been
extremely been busy with that.

http://groups-beta.google.com/group/...rch+this+group

Nick is always prepared to help other people, however I did not see him a
while now.

I hope this helps,

Cor

Nov 21 '05 #6

P: n/a
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

"Geoff Jones" <no********@email.com> escribió en el mensaje
news:42*********************@news.dial.pipex.com.. .
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


Nov 21 '05 #7

P: n/a
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

"Carlos J. Quintero [.NET MVP]" <ca*****@NOSPAMsogecable.com> wrote in
message news:eb**************@TK2MSFTNGP14.phx.gbl...
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

"Geoff Jones" <no********@email.com> escribió en el mensaje
news:42*********************@news.dial.pipex.com.. .
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

Nov 21 '05 #8

P: n/a
Geoff,

"Geoff Jones" <no********@email.com> schrieb:
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 S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Nov 21 '05 #9

P: n/a
Thanks Herfried

Geoff

"Herfried K. Wagner [MVP]" <hi***************@gmx.at> wrote in message
news:uM**************@TK2MSFTNGP12.phx.gbl...
Geoff,

"Geoff Jones" <no********@email.com> schrieb:
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 S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Nov 21 '05 #10

P: n/a

"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
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

Nov 21 '05 #11

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

Geoff

"Mythran" <ki********@hotmail.comREMOVETRAIL> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...

"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
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

Nov 21 '05 #12

P: n/a

"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
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

Nov 21 '05 #13

P: n/a
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.

--
Jonathan Allen
"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
Thanks Mythran. An interesting idea. Will any computer have this or only
ones on a network?

Geoff

"Mythran" <ki********@hotmail.comREMOVETRAIL> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...

"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
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


Nov 21 '05 #14

P: n/a
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

"Jonathan Allen" <x@x.x> wrote in message
news:OH**************@TK2MSFTNGP14.phx.gbl...
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.

--
Jonathan Allen
"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
Thanks Mythran. An interesting idea. Will any computer have this or only
ones on a network?

Geoff

"Mythran" <ki********@hotmail.comREMOVETRAIL> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...

"Geoff Jones" <no********@email.com> wrote in message
news:42*********************@news.dial.pipex.com.. .
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



Nov 21 '05 #15

P: n/a
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
Nov 21 '05 #16

P: n/a
Jonathan Allen wrote:
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.

--
Rinze van Huizen
C-Services Holland b.v.
Nov 21 '05 #17

This discussion thread is closed

Replies have been disabled for this discussion.