What way do most programs store their serial information? I know some do in seperate/hidden .dlls or .exes, but where is the place most programmers like to store their serial info?
Printable View
What way do most programs store their serial information? I know some do in seperate/hidden .dlls or .exes, but where is the place most programmers like to store their serial info?
Probably in the Registry. If you're really good, you can make a seperate program to edit your EXE and add the necessary data to it.
One of my favorites is in HKEY_CLASSES_ROOT under a key that blends in well, often I'll store a serial number as an encrypted key under HKEY_CLASSES_ROOT\[32-bit ID]\[App VersionNumber]\[Store encrypted SERNO as default value]
Napster does this with it's "PIN" number(s).
but that is just me, im interested in other(s) opinions too
Do they ever store the info inside the program?
Yes, as I said before, you can edit your EXE and save the info in it. But you have to create another program todo the registering because EXE's are ReadOnly at runtime.
If you store information like a static password into the program, it can be cracked in or under a minute, so your best bet is to add the serial number some where outside, in like a dll number...
I use to break up the serial number into a lot of parts and store the parts in different parts of registry. For example the serial number:
1234-56789-10111213-1415-ABCD-EF-FGIE
Has seven parts. I will create a key under the HKEY_CLASSES_ROOT\CLSID (most cumbersome key) with the name:
{00020425-0000-0000-C000-000000000483} (something like that)
(this is the format of other key's name. open the key and u will understand why I named it like this)
and inside it, I will make following keys:
KEYNAME: 1234; (Default)="-" (First part and then the -)
KEYNAME: 56789; (Default)="-" (Second Part and after that the hyphen)
KEYNAME: 10111213; (Default)="-" (third part....)
KEYNAME: 1415; (Default)="-" (fourth one)
KEYNAME: ABCD; (Default)="-" (fifth one)
KEYNAME: EF; (Default)="-" (Sixth part)
KEYNAME: FGIE; (Default)="" (seventh and last part)
When getting the serial number from my program I use to enumerate the {00020425-0000-0000-C000-000000000483} key.First I get a subkeyname and then the Default value. And I continuosly add this to a string. The string, in the last, becomes the serial number. Isn't it strong?
There is a GetSetting and SaveSetting function in the Visual Basic that you can use it to write and read your own customized data from/to the registry.
But one disadvantage is all your data will be store all under the following path:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings
:)
Make two different versions. One "shareware" and one pay-version. Don't do serial because you can crack them all.
Not if you encrypt the serial number within your App. Sure you can try Hex Editing, but the code is encrypted so you can't crack it.
There is tool for decompile your VB-programs. I don't know if a decompiler for VB6 is out but up to 5 is. You can't hide your code when you just compile it with VB