Jump to content

Require a Serial


JohnOne
 Share

Recommended Posts

@ JohnOne

I totally agree with you. One shouldn't make it inconvinient for the client, perhaps this idea could work.

1. Generate a random serial key

2. Convert that serial key to some other random string, let's say for instance a binary String

3.Write the binary value to the registery

4. Encrypt the binary String with your own type of algorithm - then store it in a variable for the time being

5. Let the user contact you, with his randomly generated binary converted number.

6.Then convert the string with what ever algorithm you have(must be the same as the app's).

7. Let your program do the string matching, match the stored encrypted string with your encrypted string.

Then if a match blah, blah, blah if not then exit or whatever

I suggest calling the random serial generation everytime if your app isnt activated until upon activation.

Just an idea...

[u]My dream is to have a dream...[/u]

Link to comment
Share on other sites

  • 8 months later...

The serial will not be "crypted". For better understanding i want to point out the difference between "encrypting" and "hashing".

The size of encrypted data depends on the size of the data, and it can be decrypted.

The size of a hash is independent from size of the data, it has a static size, and it is impossible, to get the data back from a hash., because hashing is a lossy procedure, it is a checksum.

That's important for the understanding of the example, because a hashed serial cant be reverse calculated, only brute forced.

This way it is possible, to deliver the (demo-,shareware-)main-program to everybody and deliver the additional fullversion-functions "personalized" (encrypted with the calculated hash, not the registry-value) to each customer as an extra module.

AutoIt-Syntaxsheme for Proton & Phase5 * Firefox Addons by me (resizable Textarea 0.1d) (docked JS-Console 0.1.1)

Link to comment
Share on other sites

  • 1 year later...

No need to take screenshots of the code, just copy/paste it on here. Pictures of code is just weird.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

  • 2 weeks later...
  • 7 months later...

check out: "everything-you-need-to-know-about-registration-systems"   http://www.kalzumeus.com/2006/09/05/everything-you-need-to-know-about-registration-systems/

if one is interested in a pay system with paypal :
look into both IPN https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/ and PDT
and here is help creating a listener for IPN messages http://www.geekality.net/2011/05/28/php-tutorial-paypal-instant-payment-notification-ipn/

the activating key could be  _WinAPI_UniqueHardwareID() for the first field of the key, dash the  "transaction id" generated on the server side
keeping the information https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/#id08CKFJ00JYK and generated key under a database folder per purchase

 the user would register! re-entering the key..(In-case of any changes in the user's computer environment) if the key doesn't decode as valid (in HardwareID or information-Ids) , a "verify" form shows up with input for email address and placed key asking the user to verify the information
The user then chooses to verify\re-activate, his new UniqueHardwareID and information are sent to the server which again validates the information generating a new key sent back by email.

I would keep out anything that tries to detect if the user is manipulating the system in any way, just to keep things simple "with loose ends".

creating such a system will be easier for someone who's got basic php .etc scripting and server-side handling experience. 
* would be nice if some one posts a startup platform with basic scripts needed to start trying this out ..

Peace Out

Edited by Deye
Link to comment
Share on other sites

  • 6 months later...

Hi Everybody,

I think the manufacturer's HDD Serial is good for this scenario ,it is unique & stable.The script below fetches the physical HD sr.num.The idea is 1)to upload the Sr.num to the server.2)Then include this script(gtSrNo()) a the start of the script-to-protect(main script) & call it before running the main script.3)Check its return value(the serial num) against the one saved at the server.

Question: Can the Sr num be uploaded to server from client?

Can it be matched against the Sr num generated each time the script is run by the client?

I will be very very thankful if some one can help out.

cheers

olmar

Func gtSrNo()

$wbemFlagReturnImmediately = 0x10
 $wbemFlagForwardOnly = 0x20
 $colItems = ""
 $strComputer = "localhost"

  $Output=""
 $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
 $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _
            $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

 If IsObj($colItems) then
    For $oItm In $colItems
       $strPowerManagementCapabilities = $oItm.PowerManagementCapabilities(0)
       $Output = $Output & $oItm.SerialNumber & @CRLF
    Next
Else
    Msgbox(0,"WMI Output","Pl No WMI Objects Found for class: " & "Win32_DiskDrive" )
 Endif
 ConsoleWrite("The serial ni is "&$Output&@CRLF)
 Return $Output
 EndFunc

gtSrNo()

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...