CD data protection & database on CD (Multimedia tutorials)

siki used Ask the Experts™
I need to create multimedia TUTORIAL (MS Word) on CD with text, pictures, sound, and mouvies.
I want to do it without instalation needed on user computer.
So, I decide to use Flash & Delphi.
But, I dont want someone to rip my Flash generated mouvies and tutorials (in txt, rtf and html format) from CD. So, I need
 - some protection (to crypt or load mouvie from database)
 - database for searching tutorials, to store topics and text. Database wich can run without install (ready for use from CD), so it must be non-BDE.
Finally, I need advices for this:
1. Wich database to use  
2. How to implement protection (smart & fast & not so strong).
Thanks in advance.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
1. You could use an ms access database.  This requires the MDAC be installed on the target machine, and it is on most installs of win2k or winxp, and on any machine with access installed of course.  If that's still "going too far" then you can use something horribly disgusting and slow like Paradox, XML or plain old CSV files.

2. This will not be easy.  Encrypting files is easy in delphi.  Decrypting them is just as easy.  Starting arbitrary programs like word to open a document that exists only in memory, flash player to play a .swf that exists only in memory, or straight out trying to run a program from memory.. none of these are as "easy" as you want I don't think.

In some cases, say with word, you can decrypt a document to memory and use DDE to open word and insert the document; this won't stop the users from saving it though.

Each case for each kind of file you want to open will be different however, so there isn't one easy way to do it all.

Storing binary data (encrypted files, etc) in a text-based database like XML or CSV is going to screw up editing the database by hand, so you should uuencode the encrypted binary before putting it in the database.  This is going to make it slower than it's already going to be, though.

I wouldn't spend too much time trying to figure out a way to "copy protect" your CD, which is basically what you're talking about.  Huge companies with multi-million dollar research and development departments have failed utterly, even when doing it at the cd-pressing level.

If anyone wants to copy your work bad enough, they'll be able to do it.  Some examples :

  1 - simple cut and paste from your tutorial into another new document.

  2 - in memory editing (debugging) of your program.  Freeze it when it loads the file, dump it's memory to disk.

  3 - For the lazy; Simply copy the CD to your harddrive with something like blindwrite (to make an ISO), and then use a virtual CD-ROM tool like Daemon Tools to mount it and it'll run just like the CD was in the drive.

The short and sweet economics are : Don't spend more time+money to prevent theft than you can _realistically_ afford to lose if people decide they want to steal from you.  If you spend three weeks of 40 hours (120 hours) at $50/hr (modest rate for an experienced professional) that's $6000 down the drain.  If you sell your CD for $20 each, 300 acts of theft need to be thwarted before you even break even.
I agree with asymmetric about the "short and sweet economics"!

I also think you could use .chm help files generated with HTML Help Work Shop.
You can add Flash to it, the files can be run direct from CD, Windows 98 and greater have support to it, and there is no need to implement database support because you can just add a automatic index search to it. The Windows help uses .chm, just press F1 on your desktop to see!

Take a look at:

Hope it helps!


Thanks very musch for great comments!
I wait for more, my friends.
I think about adding "watermark" directly on flash movies, but this is not urgent.
I plan to make registration (key depends on mashine) and only few movies will be viewable in Demo state of app. So, if someone do the copy of CD, it still will need to do registration. This is protection for usual users, not crackers.
Next, with ASpack I do compression and app harder to crack.
It may be harder to protect app from discovering keygen logic. If you know some good algorithms, let me know, please!
Also, I think that i must keep app files (mouvies, text, titles) in smaller files (who wants to start single .chm file with size 100-200 Mb to run from CD?). And, .chm file I can't protect.
Now, I testing ExpressMemData from Developer Express for data storing. This comp have feature to load and save text and binary data, and don't need BDE. I still have to test behaviour on CD.
I tested SingleFileSystem (SFS) from AidAim Soft, and it sucks. It is only a archiver comp. I still think ExpressMemData is better solution.
Thanks, again! And I'm here, waiting for your comments.
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
Post your closing recommendations!  No comment means you don't care.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial