Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

I need help on Piracy Issue ! 1

Status
Not open for further replies.

hiptino

Programmer
May 27, 2000
18
0
0
NG
I've just successfully packaged a Retail Application, that I developed using VB, on a CD.
I've installed it for couple of retail outlets at some fees.
But I did not release the CD to them. They used to call me when there is need for reinstallation.

The software is getting popular, there are more demands, and these customers want the CDs. Likewise I don't want phonecalls in the night.
I'm afraid of bad guys pirating the software(I know I can't stop 'em, even Microsoft can't).
But how do I reduce the piracy?

The software really cost me time, material and money to develop.

Please no suggestion is trivial.


 
just a thought don't know the code but this is possibly an
idea I have been contemplating trying to figure out

- create code so the first time your program is run a lock key is required, then write a procedure that transfers this info from a web site or ftp site you maintain you can then change the code on each cd you burn update the target on the site and the code and site as required and not disclose it's location to anyone.
 
To expand on sdh's suggestion, you could grab their IP address when they log into the site and store it in a database. You could then compare the IP address of those who have logged in to register against those who have purchased the software. Also you would want to code the website to interface with and unlock the software... don't just post a key code that anyone could write down and distribute or the pirates won't need to log in. You could actually use the same unlock code for every copy as long as the end user cannot obtain it in any way. Rob Marriott
rob@career-connections.net
 
See thread733-70415 for a few more ideas.
VCA.gif

Alt255@Vorpalcom.Intranets.com​
 
In my spare time, I compose and record music and use an application called "Sonic Foundry ACID Pro" to mix tracks. That software had what I thought was a pretty cool locking feature. When you first get the software it has a key. That key unlocks the software for 15 days and then generates a hash based on the entered key and some serial number from the PC (I'm guessing the harddrive serial number?). The user is then required to contact the company and supply them with the generated key. They take the generated key and feed it into their system along with all of the user information which in turn generates the final key which will completely unlock the software while at the same time recording all of the information for the user of that piece of software in their db. If anyone else tries to register the software, they will know if it is the same user as well as if it is the same machine. - Jeff Marler B-)
 
There is one glitch in CCTC1's idea. What would one do if the ISP of person who is regestering on web is giving dynamic IP to him. You can not compare these IPs cause there is very very low chances that you would get same IP both the time. Think some thing different.

I have an idea and i am working on it too as i am facing the same problem. What u can do is you can give a floppy to your customers alonewith cd. Now this floppy is required every time one starts installation. On flopy you can keep 'count' of installations. This depends on you how many simultanious installations you want to allow.

Now question is how to keep count on floppy ? Floppies can easily diskcopied ! you must be thinking. I have a way in that. All 1.44 MB floppies have 0 to 79 tracks. There is one hidden track also no. track 80. This track is not accesible by MS DOS, Win9X, NT etc. But through API code you can access them. Now this is something hard.

What you have to do is mark a sector bad in this track. ( this is your count). Now whenever one tries to install s/w from cd your programme will check for this sector. If already Installed this sector will not be marked bad and u can throw user out. If it is bad it means no installation is done with this set.

Again you can change bad secotor no. from user to user and check for that. I hope you have understood the idea.
------------------------------------------------------------
Another Idea is to have a parellel / serial port dongle on machine with software. This is like simple connector which fits on yr port and from it u can connetc yr printer too. Now yr software should communicate in between while running the software to see the presense of dongle. If not present holt the system.

If you want more clarrifications on idea me a line at
cyberdyne@softhome.net

Some people here are using this technique for protecting their software.

If you get success in any one of this or u already know abt this pls pass mee info.
 
cyberdyne,
Could you please show me the APIs that you would use to access track 80 on the floppy drive? Or at the very least, give me a link to a page that describes how it is used? Thanks!

- Jeff Marler B-)
 
ty Jmarler for yr interest.

actually i am new to vb programming into basics. But I am in this IT field for past many years. I was into hardware . So i happen to know some untold inner secrete. But not much in VB. I hv idea and want to implement. And i am also searching net for this info. Hope u can also find. If i find i'll mail u details. and hope vice-a-versa

 
cyberdyne,
I've worked in several languages other than VB . . . if you have any information on how to do this in ANY language let me know (jmarler@winternet.com) . . . I may be able to convert it into VB. If I find anything, I'll pass it onto you.
- Jeff Marler B-)
 
Here's another approach -- if it's practical for your situation.

When you make a sale, create a special file for that customer that contains his name, address and telephone number. This information should be encrypted, and the file should contain a checksum in order to detect tampering.

Add to your program a routine that reads this file on startup -- if the file is missing or the checksum doesn't match, abort execution.

After successfully reading the file, your program should prominently display the customer's name, address and phone number. He'll then know that if he ever lets his copy out into the warez world he'll also be propagating his own name and telephone number, too -- because the program won't work without that file.

This scheme isn't practical for off-the-shelf shrinkwrap apps, but for high-priced vertical market products it works pretty well. I use something like this in my own products.


 
Okay.... I started writing a tip on a way to do this a few months ago (posted as faq204-53). I didn't finish by posting the VB side of the problem but somebody might have a use for the QB portion (it converts a floppy to a non-standard size). The VB code should be fairly easy to derive after reading the tip.

Actually, the idea is pretty neat. I haven't found *any* utility capable of copying the disks... believe me, I have looked....

I use a slightly more secure variation to protect my own distributions so I really don't mind releasing this sneaky little trick to the public. If it helps somebody solve a problem or just gives somebody an idea for a different approach, I'll be happy.
VCA.gif

Alt255@Vorpalcom.Intranets.com​
 
Alt255,
Excellent Post/FAQ!
I have MASM and I'm going to try to implement your code.
Quick question for you though . . . I used to program Assembly on 8 bit processors (6809, 6502, 8085) and a little on the 68000 series. Since then I have been using C/C++, Java, and VB, but I'd like to do some assembly work now and then. Can you recommend some good books for programming assembly on Pentiums (1,2,3,or 4)? Thanks! - Jeff Marler B-)
 
WOW, I too am going to try out this. Nice post Alt255. :)
Thank you in advance.
 
Alt255,
Will calling the BIOS interrupts (INTERRUPTX) work through HAL on WINNT and WIN2K? Also, do you know of a DLL there that can provide this function to VB? Or will inline assembly in a C++ DLL work? - Jeff Marler B-)
 
Jeff,

I don't know of any DLLs written to allow this sort of activity under 32bit VB. I found one that worked with 16bit VB3 but when I contacted the authors they told me they had no plans to write device drivers for Win32.

Regarding Interrupt 13, my information states that it is available on all machines (8086 to Pentium). The basics of Assembly appear to have changed very little.

You would have to make some adjustments to use this scheme under NT. It will allow the use of Interrupt 13 to read or write physical sectors on a floppy disk (naturally, it complains loudly if you try it on a hard drive) but the results aren't always as intended.

I tried the code on a 1.44mb floppy under NT Server 4.0 (BTW, the code has a typo that prevents it from succeeding, as posted). NT didn't complain... but properties on the floppy indicated that it was a 1.2mb disk (512 bytes used and 1,178,112 bytes used). Windows 98 reported that it had a capacity of 24,994,816 bytes (20,769,280 used and 4,225,536 bytes free). VB6 using FSO reported similar findings under both NT and Win98.

I checked the disk on both systems. NT found no errors but Win98 crashed (locked dead) shortly after starting Scandisk.

Interesting... the most reliable way to use this under NT would be to read the "total sectors" field directly rather than relying on the OS to pass the information to VB.

Would it be possible to write the functionality into a DLL?
VCA.gif

Alt255@Vorpalcom.Intranets.com​
 
"Would it be possible to write the functionality into a DLL?"


-That is what I am trying to figure out. - Jeff Marler B-)
 
Well, I was going to 'butt out' on this, BUT ...

For retail POS systems, piracy really should not be an issue. All POS systems need to be set up for a large number of Locale specifics, especially the TAX tables.

If you generate an encryption code/scheme based on the installation details, then encode the tax table information with the derived encryption code, the tax info is a secure lock for the program. Even when the CD is re-used, it will generate encrypted tax tables. If you make each update to the tax tables require access to YOU / YOUR facility, anyone who 'pirates' the software will have to come to you to fix the tax tables. You will 'have them' COLD! Of course, like all of the useful copy protection schemes, it does impose oo your customers, and require periodic contact with you. So what. Most software today is not sold, it is licensed. Occassional contact with the vendor should NOT be the end of the world. It could / should be an opportunity for you - the vendor to offer additions and / or upgrades to the product line. Some commercial apps even 'bill' this as a service to their customers and assume the responsability to maintain the the tax-tables for various jurisdictions and 'download' them to their clients for a very modest fee - and still male a profit on the process. It helps theeir clients, as they no longer need to do the tedious keying of the information. It helps the vendor TWICE. It is a profitable undertaking - if you have enough customers. It removes the protection concern.


MichaelRed
redmsp@erols.com

There is never time to do it right but there is always time to do it over
 
If you want to make a downloadable version, you should explore the idea of creating an interactive web site to accept a randomly generated hash code that is generated the first time the program is run. The web site would require the buyer to supply the installation (random hash) code during the purchace and would e-mail him an unlock code to disable any demo mode you may have. Just check for the existance of the unlock code and create a splash screen alearting the user of the demo mode. Alternately, you can use manual emailing to supply users with an unlock code. Other products that work real well include HASP by Aladin knowledge systems which include parallel and usb port type hardware keys. They are cheap enough, at around $20. ea. These are a good solution if your software if worth a couple thousand.
 
Alt255,
If you know of anyway to get ANY service of Int 13h (floppy or HD) to work under NT, I'd love to know. I've been trying it and all I'm getting is access violations which I suppose are being caused by the HAL . . . or maybe I'm not doing it right. - Jeff Marler B-)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top