Results 1 to 13 of 13

Thread: How can I protect my vb app of Copying by using Hard disk serial number?

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Oct 1999
    Posts
    232

    Post

    This is a suggestion only about setup app.

    You should add some file to the installation of your application and at every installation to check this file from setup app. Before first installation this file have value 0 and after that setup program increases it to 1. And you don't need # HD.

    ------------------
    smalig
    smalig@hotmail.com
    http://vbcode.webhostme.com/



  2. #2
    New Member
    Join Date
    Jan 2000
    Location
    kuwait
    Posts
    9

    Post

    Your answer is clear ,but if the cd copyed

    how can setup avoid copying while it is not ranning .???

  3. #3
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,176

    Post

    If you're that worried about Piracy, why don't you incorperate an Activation Key which is Date Specifically encoded, so any given A/K will only work to install on a given day.

    ------------------
    Aaron Young
    Analyst Programmer
    aarony@redwingsoftware.com
    ajyoung@pressenter.com


  4. #4
    New Member
    Join Date
    Jan 2000
    Location
    kuwait
    Posts
    9

    Post

    Thanks Aaron

    But ,If i came to run setup I notice that the date of the user pc is not today's date
    how can i prevent such thing ??


  5. #5
    Member
    Join Date
    Sep 1999
    Location
    Lebanon, Beirut
    Posts
    63

    Post

    hi...
    you can get s# by this api , & more other inf. then use it to compare (boolean)
    if you need more details
    mail me:
    nightsoft@terra.net.lb
    subject: attn:Naji K. 'BlackRose'

    Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long


    ------------------
    BlackRose

  6. #6
    Hyperactive Member Juan Carlos Rey's Avatar
    Join Date
    Aug 1999
    Location
    Mendoza, Argentina
    Posts
    301

    Post

    Use Active Lock.
    It reads serial number, and is protected against cheating by changing system date.
    Search the net for "ActiveLock" or "NSLock"


    [This message has been edited by Juan Carlos Rey (edited 01-13-2000).]

  7. #7
    New Member
    Join Date
    Jan 2000
    Location
    kuwait
    Posts
    9

    Post


    Hi everybody

    How can i make my app not at second time in any pc ,By using Hardisk serial number

    Can any body help by code It is very Urgent !!!!

    Thanks in advance

  8. #8

    Thread Starter
    Addicted Member
    Join Date
    Oct 1999
    Posts
    232
    The example to obtain REAL HDD serial (ActiveX written on C++ with source code and example on VB how to use it)

    http://www.relib.com/code.asp?id=482

    to download zip click to

    http://www.relib.com/code/x482.zip

  9. #9
    Registered User Nucleus's Avatar
    Join Date
    Apr 2001
    Location
    So that's what you are up to ;)
    Posts
    2,530
    I had this lying around, I don't think it gives the "real" sn, but may be something to use. If not please comment.
    [code]
    Option Explicit

    Private Declare Function GetVolumeInformation& Lib "kernel32" _
    Alias "GetVolumeInformationA" (ByVal lpRootPathName _
    As String, ByVal pVolumeNameBuffer As String, ByVal _
    nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
    lpMaximumComponentLength As Long, lpFileSystemFlags As _
    Long, ByVal lpFileSystemNameBuffer As String, ByVal _
    nFileSystemNameSize As Long)

    Const MAX_FILENAME_LEN = 256

    Public Function SerNum(Drive$) As Long
    Dim No&, s As String * MAX_FILENAME_LEN
    Call GetVolumeInformation(Drive + ":\", s, MAX_FILENAME_LEN, No, 0&, 0&, s, MAX_FILENAME_LEN)
    SerNum = No
    End Function



    Private Sub Command1_Click()
    MsgBox SerNum("c")
    End Sub

  10. #10

    Thread Starter
    Addicted Member
    Join Date
    Oct 1999
    Posts
    232
    The GetVolumeInformation takes information about volume number only. It means the number which has every partition (logic disk) after formatting. With example what I sent before you can get REAL serial number of HDD what you can see when rebooting your computer.

  11. #11
    Registered User Nucleus's Avatar
    Join Date
    Apr 2001
    Location
    So that's what you are up to ;)
    Posts
    2,530
    smalig,

    Tried that control, what do OS version and drive have to be? The default seems to be 1 and 0 respectively. What do 1 and 0 stand for?

    How do I check the serial numbers for all HD in my system using this tool?

  12. #12

    Thread Starter
    Addicted Member
    Join Date
    Oct 1999
    Posts
    232
    That is not my example and I have tried it only on the one-drive PC with Windows ME. Pay attention if you have Win9X/ME you should also have S.M.A.R.T. driver (look at read.txt)......

    P.S.

    For SCSI-disks this code doesn't work.

  13. #13
    Addicted Member
    Join Date
    Apr 2000
    Location
    England
    Posts
    246
    I Dislike these methods of copy Protection.

    Example in the last 6months i've upgraded my harddrive 3 times. I have brought programs like this before and they break when i upgrade which is often.

    Setup shouldn't store infomation like that, I would be demanding my money back within a few months.


    Copy Protection is an odd issue, they only effective way to go about doing it is over the web. Keys work to some extent, but you have to accept that the average home user don't give a crap. Your program will be priated.

    If your app is a web application however then you have a few choices.

    forced Registration, there are some Issues about this, people don't like it because it removes some of thier free will. Microsoft is doing this with the new versions of Office and Windows (but they are such large programs people bother to hack them anyway)

    the best way to go about doing this is to run a registration server, When they register, record some info, the host name of the computer is a good one, CPU speed and Memory is another. Harddrives are not, due to removalable physical Harddrives which are still popular.

    Allow People to Re-Register as often as they like, but no more than once in a 24 hour period. Build a Key based on data on server and have the program send that each time it is used. Two people will not be able to use it. You will need to run a Server thou which is costly.

    Also think about maintainace, what to do if the server cannot be contacted (not work, work for upto a week before stop working?) allow you to Alter Server details. Write the program so the Server is not required if a certain file is present, and has the correct file info, you can release this file in a patch if you want to dis-continue maintaince later if you wish.

    if your Application isn't Web based, then accept the fact that your program is going to be priated rather than make it so hard to use that paying customers will not bother.
    Some Days, i just get this feeling that i'm helping to write dozens of Viruses...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width