Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Different versions of the same program

Different versions of the same program

Scheduled Pinned Locked Moved The Lounge
tutorialquestionannouncement
23 Posts 11 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Tim Smith

    In my years of hacking/cracking, I discovered 1 thing. Figuring out how to generate a registration code wasn't important. Figuring out how to just trick the program into ignoring the registration code was much easier. So many application have this type of thing. if (CheckRegistration ()) exit (1) (you get the idea) So all you have to do is comment out that one line (or NOP to be more specific) and the program is broken. Things you can do to help yourself. 1. Make it such that the registration code has to set many differnent variables in the program for the program to work. 2. Set these variables in different places in the program. (Thus they have to find many pieces of code to hack.) But still, that doesn't really protect you. Just makes it a little bit harder. Side note about hacking data files. To help make data files more secure, they need to be: 1. Encoded. (Make it harder to spot key text or data) 2. If saved multiple times with the same dataset they should generate GREATLY different output. Such things as seeding an encoder with a random variable works. (This help to protect against the "change 1 thing and compare data files to see what changed" attack. 3. Use multiple encoding/crytography systems. (This just really makes a hackers day. 99% of them are expecting 1 level of encoding.) In our data files for our program, we use standard crytography, random seed encoding and positional encoding. It makes for very hard to decode data files. Good hackers can always locate your code that reads and writes the files. So ultimately, your data files can be hacked. As long as the hacker has the program that can read/write the data, there is NOTHING you can ever do to protect yourself 100%. A hacker can always break your program at ::WriteFile and then track backwards. Tim Smith Descartes Systems Sciences, Inc.

    N Offline
    N Offline
    Neville Franks
    wrote on last edited by
    #21

    Hi Tim, Your comments are spot on and are some of the things I do in ED for Windows. The ïf (Registered()) .. issue is a serious problem with many commercial schemes. ie. "Protect your app with only 2 lines of code". I don't agree about the Registration code though. It is my understanding that many applications are cracked using Key Generators, so if for no other reason you need to make this as difficult as possible. The other issue is where someone posts a valid registration key on a Web site, enabling anyone to turn your app into a fully working version. I've taken measures against this as well. Neville Franks, Author of ED for Windows. Version 4.01 just released, with a C++ Class View that actually works. www.getsoft.com

    T 1 Reply Last reply
    0
    • N Neville Franks

      Hi Tim, Your comments are spot on and are some of the things I do in ED for Windows. The ïf (Registered()) .. issue is a serious problem with many commercial schemes. ie. "Protect your app with only 2 lines of code". I don't agree about the Registration code though. It is my understanding that many applications are cracked using Key Generators, so if for no other reason you need to make this as difficult as possible. The other issue is where someone posts a valid registration key on a Web site, enabling anyone to turn your app into a fully working version. I've taken measures against this as well. Neville Franks, Author of ED for Windows. Version 4.01 just released, with a C++ Class View that actually works. www.getsoft.com

      T Offline
      T Offline
      Todd Smith
      wrote on last edited by
      #22

      In the end you're spending time on a feature that's not used by your "paying" cutomers. I think you just need a simple protection scheme that prevents casual copying of your program. Since any program can be cracked what's the point of spending time on writting protection code? my .02

      Todd Smith

      N 1 Reply Last reply
      0
      • T Todd Smith

        In the end you're spending time on a feature that's not used by your "paying" cutomers. I think you just need a simple protection scheme that prevents casual copying of your program. Since any program can be cracked what's the point of spending time on writting protection code? my .02

        Todd Smith

        N Offline
        N Offline
        Neville Franks
        wrote on last edited by
        #23

        But where does "casual copying" end? If a company purchases two licenses and has five or ten people using a product, is that "casual copying"? It isn't in my opinion, and this is one of the issues that I face on a regular basis. I can't afford to forgo this lost revenue, especially when all 5/10 users request and expect support. We may need to agree to disagree on this. Neville Franks, Author of ED for Windows. Version 4.01 just released, with a C++ Class View that actually works. www.getsoft.com

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups