Make Serial Key
Protecting Your Software Using Simple Serial Number/Activation Key Pair
Serial Key Maker 2015 Crack Plus Registration Key Free Download,It is application specially designed for software developers to help protect your applications.
Oct 01, 2012 When you install or reinstall a Microsoft Office product, you are prompted to enter the product key. The product key is used during software.
Jan 16, 2016 This Is a Simple trick You find A Software Serial Key For More Info Join our page https://www.facebook.com/Hacking-Tricks-177614818958585/.ref hl.
How to Make a Serial Key. To help ensure that your software is only installed by customers who have purchased a license, you can provide a serial key to paying.
Find out how to update your Windows product key. The Windows Product Key Update Tool will make changes to your Windows installation to update your product key.
SKGL – Serial Key Generating Library is a very simple licensing system that might be used to protect. NET Applications. If you like it, please donate or consider.
Introduction
In this simple article, I am going to show how you can protect your software from unauthorized copying by creating a serial number/activation key pair based on the physical address MAC of the network adapter on the client s machine.
Getting the MAC Address and Generating the Serial Number
The first step is to get the MAC address of the client s machine. This could be achieved by using the ManagementClass class located in the System.Management assembly. We have to add a reference to that assembly to our project, and import it into SecurityManager.vb, which will be the class in which we place the GetSerial and CheckKey functions. These two functions will be responsible for generating the serial number from the MAC address and checking whether the key entered by the user is valid. As a first step, we define the GetSerial function as follows:
Public Function GetSerial As Long
Dim mc As New ManagementClass Win32_NetworkAdapterConfiguration
Dim mac As String
Dim moc As ManagementObjectCollection mc.GetInstances
For Each mo As ManagementObject In moc
If mo.Item IPEnabled Then
mac mo.Item MacAddress. ToString
Exit For
End If
Next
mc.Dispose
Dim sum As Long 0
Dim index As Integer 1
For Each ch As Char In mac
If Char.IsDigit ch Then
sum sum Integer.Parse ch index 2
ElseIf Char.IsLetter ch Then
Select Case ch.ToString.ToUpper
Case A
sum sum 10 index 2
Case B
sum sum 11 index 2
Case C
sum sum 12 index 2
Case D
sum sum 13 index 2
Case E
sum sum 14 index 2
Case F
sum sum 15 index 2
End Select
index 1
Return sum
End Function
This function will give us the unique serial number of each MAC address not totally unique, but similar to hash function uniqueness.
Generating Activation Key from the Serial Number
The second step is to create the key generator which will generate the activation key from a given serial number. This generator will be placed in a class called KeyGenerator. This class will contain a function which will apply a simple mathematical function on the serial number to get the activation key. In this case, I will use the function f x x2 53/x 113 x/4.
Public Class KeyGenerator
Public Function GenerateKey ByVal serial As Long As Long
Dim x As Long serial
Return x x 53 / x 113 x / 4
End Function
End Class
Back to SecurityManager.vb, we need to add one more function, which is CheckKey. This function will take the activation key as a parameter, apply the key-generating function on the current MAC address, then compare the two keys to see whether they match or not.
Public Function CheckKey ByVal key As Long As Boolean
Dim x As Long GetSerial
Dim y As Long x x 53 / x 113 x / 4
Return y key
One important note left: do not place all of these classes in your client s solution. Remember that the key-generating class is only owned by you.
Now you can use these classes to protect your software. You can also use more complicated functions to ensure more security. The key generator may look like this:
If everything is alright, the user would get the following message.
For more articles, please visit my blog in Arabic only.
Happy coding.
Sign Up to vote
Poor
Excellent
My vote of 5 thileep2010 12 Jan 12
Hi jaffal. thank you very much your post. I am using ur code in simple billing system. it is very helpful to me. thanks a lot
My vote of 5 Zizoovic 20 Dec 11
Free Palestine V from Tunisian people
My vote of 5 Oshtri Deka 28 Nov 11
I believe average mark of 3.33 isn t fair. This is nice and simplistic article and should be regarded as such.
After all managed applications are hard to defend.
My vote of 5 Manfred R. Bihy 9 May 11
Code Change enexooone 21 Sep 10
The code generated changes if turn on and off wireless
but good article providing some useful information
My vote of 5 Awadh Abdullah 14 Sep 10
Good Work, Keep it on bro.
You should add some text encreptio to it before storing the key in file
where key will be store el3ashe 16 Feb 10
nice code but i want to ask
where the code will be store. in registry..
i found that code need some implement then may be we can depend on
but i think the best way for your application is online key with online database any other ways to store keys will be destroy easy
nice try
need help dudeman2 22 Aug 09
hi there,
I made a simple app on my mac using xcode.
How the hell do I copy protect it. I have looked everywhere and here is the closet i ve got to the code.
I am a noob and kinda know whats going on in the code but how do I implement this into my project. I just need simple protection.
Any information will be much appreciated
cheers
Multiple NICs, such as laptops nicorac 26 Aug 08
What about multiple NICs.
I m thinking about laptops, where you have both Wired and Wireless NICs.
There should be a way to use always the wired one, cause the wireless could be a PCMCIA card and sometimes could not be inserted.
Hexadecimal numbers TobiasP 19 Aug 08
Both the Parse and TryParse integer methods can be set to accept hexadecimal numbers through the overloads having NumberStyles arguments, so the IsDigit/IsLetter/select case-section can be greatly reduced while giving the same result.
Otherwise, I suppose the article can be useful if security is of little concern. It is, as has already been mentioned, easy to crack.
General News Suggestion Question Bug Answer Joke Rant Admin
Use Ctrl Left/Right to switch messages, Ctrl Up/Down to switch threads, Ctrl Shift Left/Right to switch pages.
Too simple for any copy protection GurliGebis 14 Aug 08
The idea is fine enough.
There is one fatal problem with it, since it is quiet easy for somebody to rip open an assembly with Reflector and get the formular for generating the key.
A better solution would be to use some sort of encryption for the key.
Hi, I have mentioned in the summary that the compiled code should be protected against reverse engineering before distributing it. But I really don t know if these programs claiming they protect. NET assemblies are good enough any idea about them.
But you have also to remember that the generator should not be distributed with the software, since it only belongs to the programmer. This means that the assembly will not be available in the first place to be opened using reflection.
modified on Thursday, August 14, 2008 PM
Re: Too simple for any copy protection mr_ber 18 Aug 08
Although the generator should not be distributed, the validity checking code is a part of the distributed code and it has to calculate the same function. This validity checking code can be used to understand the function.
To solve this issue, some kind of private/public key method should be used. Meaning - you as the developer hold and protect the private key that enables you to generate the activation key from the serial number. The distributed code has only the public key to validate that the provided activation key refers back to the serial number. The problems remain: a - the validity code could be hacked and patched, b - a brute force attack could be used to get the private key.
Re: Too simple for any copy protection Yasser M. Jaffal 19 Aug 08
I am not saying this is a top security solution - crackers where able to work around Microsft s security so I am sure this would be much easier with my application. But as I said the aim of this demo is to convey a simple idea on beginner s level on the big picture of serial number/activation key-based security.
Re: Too simple for any copy protection google198 20 Jul 11
Thanks a lot Yasser, It was a very good code, Thanks from a Palestinian In France
Very Usefull Profiler 14 Aug 08
Thank you.
Public
Function GetSerial
Long
Dim mc
New ManagementClass Win32_NetworkAdapterConfiguration
Dim mac
String
Dim moc ManagementObjectCollection mc.GetInstances
For
Each mo ManagementObject moc
mo.Item IPEnabled
Then
Exit
For
End
Next
Dim sum
Long
Dim index
Integer
Each ch
Char mac
Char.IsDigit ch
sum sum
Integer.Parse ch index
ElseIf
Char.IsLetter ch
Select
Case ch.ToString.ToUpper
Case A
sum sum index
Case B
Case C
Case D
Case E
Case F
Select
index
Return sum
Function
Class KeyGenerator
Function GenerateKey
ByVal serial
Dim x
Long serial
Return x x / x
113 x /
Class
Function CheckKey
ByVal key
Boolean
Long GetSerial
Dim y
Long x x / x
Return y key
Too simple for any copy protection
GurliGebis 14 Aug 08
Re: Too simple for any copy protection
mr_ber 18 Aug 08
Yasser M. Jaffal 19 Aug 08
google198 20 Jul 11