1. Re-Install?
- Posted by Euman <euman at BELLSOUTH.NET> Dec 12, 2000
- 371 views
- Last edited Dec 13, 2000
------=_NextPart_000_0007_01C06476.9FCE7480 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello If I want to inforce a time limit on my software and keep the program = safe from Re-Installation, what would be the best way? i.e: * encrypt a file with time date information and hide it in the Windows = dir or anywhere that my program can find it later. * store the info in the Windows Registry (this could be accessed and = deleted). if the info weren't encrypted and hidden in a registry key not haveing = my software name attached to it. I want to find the best solution so I ask all for input. Another ? from euman at bellsouth.net ------=_NextPart_000_0007_01C06476.9FCE7480 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT face=3DArial size=3D2>Hello</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>If I want to inforce a time limit on my = software=20 and keep the program safe from Re-Install</FONT><FONT face=3DArial = size=3D2>ation,=20 what would be the best way?</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>i.e:</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>* encrypt a file with time date = information and=20 hide it in the Windows dir</FONT></DIV> <DIV><FONT face=3DArial size=3D2> or anywhere that my program can = find it=20 later.</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>* store the info in the Windows = Registry (this=20 could be accessed and deleted).</FONT></DIV> <DIV><FONT face=3DArial size=3D2> if the info weren't encrypted = and hidden in=20 a registry key not haveing my</FONT></DIV> <DIV><FONT face=3DArial size=3D2> software name attached to = it.</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>I want to find the best solution so I = ask all for=20 input.</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>Another ? from</FONT></DIV> <DIV><FONT face=3DArial size=3D2><A=20 <DIV> </DIV> <DIV> </DIV> ------=_NextPart_000_0007_01C06476.9FCE7480--
2. Re: Re-Install?
- Posted by Kat <gertie at PELL.NET> Dec 12, 2000
- 363 views
- Last edited Dec 13, 2000
On 12 Dec 2000, at 20:03, Euman wrote: > Hello > > If I want to inforce a time limit on my software and keep the program safe > from Re-Installation, what would be the best way? > > i.e: > > * encrypt a file with time date information and hide it in the Windows dir > or anywhere that my program can find it later. > > * store the info in the Windows Registry (this could be accessed and deleted). > if the info weren't encrypted and hidden in a registry key not haveing my > software name attached to it. > > I want to find the best solution so I ask all for input. Well, hide a tag in the boot sector, use bios calls to write a tag into places on the harddrive that dos can't see, make the user contact your web page before the install finishes to verify date and serial number, spam a small file into every main dir on every harddrive, distribute the program as a self- extracting zip file that must remain in an unzipped state (and internally tagged with the date and read by your program) for the software to find before it executes, hard code *a* date in the shrouded code that is self modifying with the date of termination installed when it is first run. That's all i can think of atm, Kat
3. Re: Re-Install?
- Posted by Derek Parnell <derekp at SOLACE.COM.AU> Dec 13, 2000
- 356 views
------=_NextPart_000_000C_01C06502.FFAA8880 charset="iso-8859-1" Hi Euman, whatever you do use, you really should allow for legal re-installations. Sometimes (eg hard disk failures, kid brother wiping your directory, random cosmic rays zapping a bit, etc....) there are valid reasons for re-installing software. Also, instead of time-based, how about considering usage-based methods of limiting extra use of software. ----- cheers, Derek Parnell derekp at solace.com.au If I want to inforce a time limit on my software and keep the program safe from Re-Installation, what would be the best way? ------=_NextPart_000_000C_01C06502.FFAA8880 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.3105.105" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN = class=3D920473501-13122000>Hi=20 Euman,</SPAN></FONT></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20 class=3D920473501-13122000>whatever you do use, you really should allow = for legal=20 re-installations. Sometimes (eg hard disk failures, kid brother wiping = your=20 directory, random cosmic rays zapping a bit, etc....) there are valid = reasons=20 for re-installing software. Also, instead of time-based, how about = considering=20 usage-based methods of limiting extra use of = software.</SPAN></FONT></DIV> <DIV> </DIV> <P><FONT size=3D2>-----<BR>cheers,<BR>Derek=20 Parnell<BR>derekp at solace.com.au<BR></FONT></P> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #0000ff 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: = 0px; PADDING-LEFT: 5px"> <DIV><FONT face=3DArial size=3D2>If I want to inforce a time limit on = my software=20 and keep the program safe from Re-Install</FONT><FONT face=3DArial = size=3D2>ation,=20 what would be the best way?</FONT></DIV> ------=_NextPart_000_000C_01C06502.FFAA8880--
4. Re: Re-Install?
- Posted by Kat <gertie at PELL.NET> Dec 13, 2000
- 337 views
On 12 Dec 2000, at 20:03, Euman wrote: > Hello > > If I want to inforce a time limit on my software and keep the program safe > from Re-Installation, what would be the best way? Ok, there is another way, but i wouldn't run it myself: Adware. It still must have access to the internet, for it to download a cache of ads to display to the user. There are companies who are devoted to helping you put together and market adware. While in contact with the web server, it tells who it is, the ip of course, the os, and the version or serial number, and whatever else you want to know about the user. Altho Microsoft graciously includes the DLLs for adware to function nicely in their OSs, i have deleted these DLLs required for adware to function ( since the adware can examine any part of the puter and send anything back to the adserver, encrypted to get by programmable packet filters ), i can run the code on a box not online, and i can firewall the ad server's ip. But then i don't *want* to run adware. You can have your code detect when the last known contact with the ad server was ( even simply by reading the ad file creation date, hidden in plain view ) and unregister and delete itself. Win98 and over may replace the DLLs i deleted (i use win95), and anti- virus code may stop a registry write, but if the application won't run without the downloaded ads, you have got the customer pretty well hamstrung. Alternatively, another approach i won't run, is the fabled holy grail of moneymakers, the internet application. You don't give or sell the *application* code to the customer, you lease them a key to the program that's running on your puter, and if successful, you better have a 24-7 stable box on a big pipe. The users have *only* the code to be a gui and access your puter. Naturally, this works better with some applications than others. You can sell it based on security of *their* data being stored on *your* puters, that you have the lastest greatest puters to run the code, or that the users in a multi-user application must have the inherent user synchronization of the central server. Someone will believe you. With either of the above approaches, once the initial_contact_date + license_term has passed, the server can be told to delete the software on the next contact, replace the code with a window to pay up for the next 30 days, or simply ignore any more connects. Seemingly randomly deleting the software on a windoze box is fun and easy, foolproof, safe and painless for the user, right? <aaarrrggg> Kat
5. Re: Re-Install?
- Posted by ck lester <cklester at YAHOO.COM> Dec 12, 2000
- 356 views
- Last edited Dec 13, 2000
------=_NextPart_000_001C_01C06472.21CFF4E0 charset="iso-8859-1" I've adopted the thinking that it's best to leave the registry alone. Here's how I protect my software from piracy: 1. Create an ini file with "lock" information. Store this where you want, but best in program directory. a. user's name and their PC's C: drive volume serial number b. time/date stamp - created at installation c. day increment counter d. time/date of last use e. lock code (at end of file) - this lock code is based on the content of the file 2. Have your program look for the file. a. If it doesn't exist, no valid license so no program run. b. If it exists and the "lock code" is valid, run the program. c. If it exists and the "lock code" is either invalid or doesn't exist, no valid license so no program run. d. If it exists and the volume serial number doesn't match the current C: drive vol ser number, don't run program. e. If the current date/time is PRIOR to the install time/date stamp OR the last use time/date, no program run. etc... The key is the "lock code." It is very similar to Rob's "stamp" of include file code. Here's an example: -- start of file User=C.K. Lester CSer=123456789 DateTime=12/01/2001-15:47 LastUse=12/03/2001-17:23 Lock=8475937485774888839273 -- end of file If even just ONE bit changes in the file (say they try to set the DateTime stamp to 12/01/2000), the program doesn't run because the generated lock won't match the stored lock. A fun thing to do: Intersperse irrelevant bytes in the Lock code. For instance, if you create a lock code of, say, 123456, you can intersperse irrelevant bytes and create a code like this: H1D283347596S788F9238F8. I've "hidden" the valid lock code inside a big container. Nobody's going to break the code, especially when they don't even know which of the digits are relevant. The lock code digits also conform to checksum rules. Anyway, just some ideas that I've used successfully for seven years now. Good luck! ck -----Original Message----- From: Euphoria Programming for MS-DOS [mailto:EUPHORIA at LISTSERV.MUOHIO.EDU]On Behalf Of Euman Sent: Tuesday, December 12, 2000 7:04 PM To: EUPHORIA at LISTSERV.MUOHIO.EDU Subject: Re-Install? Hello If I want to inforce a time limit on my software and keep the program safe from Re-Installation, what would be the best way? i.e: * encrypt a file with time date information and hide it in the Windows dir or anywhere that my program can find it later. * store the info in the Windows Registry (this could be accessed and deleted). if the info weren't encrypted and hidden in a registry key not haveing my software name attached to it. I want to find the best solution so I ask all for input. Another ? from euman at bellsouth.net ------=_NextPart_000_001C_01C06472.21CFF4E0 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Diso-8859-1"> <META content=3D"MSHTML 5.50.4207.2601" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>I've=20 adopted the thinking that it's best to leave the registry alone. Here's = how I=20 protect my software from piracy:</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>1.=20 Create an ini file with "lock" information. Store this where you want, = but best=20 in program directory.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>a. user's name and their PC's C: = drive volume serial=20 number</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>b. time/date stamp - created at=20 installation</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>c. day increment counter</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>d. time/date of last use</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2> e. lock code (at end of file) - this lock = code is=20 based on the content of the file</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>2.=20 Have your program look for the file.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>a. If it doesn't exist, no valid license so no = program=20 run.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>b. If it exists and the "lock code" is valid, = run the=20 program.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>c. If it exists and the "lock code" is either = invalid or=20 doesn't exist, no valid license so no program run.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>d. If it exists and the volume serial number = doesn't match=20 the current C: drive vol ser number, don't run = program.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>e. If the current date/time is PRIOR to the = install=20 time/date stamp OR the last use time/date, no program = run.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000> <FONT = face=3DArial=20 color=3D#0000ff size=3D2>etc...</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>The=20 key is the "lock code." It is very similar to Rob's "stamp" of include = file=20 code. Here's an example:</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>--=20 start of file</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>User=3DC.K. Lester</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>CSer=3D123456789</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>-- end=20 of file</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>If=20 even just ONE bit changes in the file (say they try to set the DateTime = stamp to=20 12/01/2000), the program doesn't run because the generated lock won't = match the=20 stored lock.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>A fun=20 thing to do: Intersperse irrelevant bytes in the Lock code. For = instance, if you=20 create a lock code of, say, 123456, you can intersperse irrelevant = bytes=20 and create a code like this: H1D283347596S788F9238F8. I've "hidden" the = valid=20 lock code inside a big container. Nobody's going to break the code, = especially=20 when they don't even know which of the digits are relevant. The lock = code digits=20 also conform to checksum rules.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>Anyway, just some ideas that I've used successfully for seven = years=20 now.</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>Good=20 luck!</FONT></SPAN></DIV> <DIV><SPAN class=3D430550601-13122000><FONT face=3DArial color=3D#0000ff = size=3D2>ck</FONT></SPAN></DIV> <BLOCKQUOTE dir=3Dltr=20 style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px = solid; MARGIN-RIGHT: 0px"> <DIV class=3DOutlookMessageHeader dir=3Dltr align=3Dleft><FONT = face=3DTahoma=20 size=3D2>-----Original Message-----<BR><B>From:</B> Euphoria = Programming for=20 MS-DOS [mailto:EUPHORIA at LISTSERV.MUOHIO.EDU]<B>On Behalf Of=20 </B>Euman<BR><B>Sent:</B> Tuesday, December 12, 2000 7:04 = PM<BR><B>To:</B>=20 EUPHORIA at LISTSERV.MUOHIO.EDU<BR><B>Subject:</B>=20 Re-Install?<BR><BR></FONT></DIV> <DIV><FONT face=3DArial size=3D2>Hello</FONT></DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>If I want to inforce a time limit on = my software=20 and keep the program safe from Re-Install</FONT><FONT face=3DArial = size=3D2>ation,=20 what would be the best way?</FONT></DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>i.e:</FONT></DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>* encrypt a file with time date = information and=20 hide it in the Windows dir</FONT></DIV> <DIV><FONT face=3DArial size=3D2> or anywhere that my program = can find it=20 later.</FONT></DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>* store the info in the Windows = Registry (this=20 could be accessed and deleted).</FONT></DIV> <DIV><FONT face=3DArial size=3D2> if the info weren't encrypted = and hidden=20 in a registry key not haveing my</FONT></DIV> <DIV><FONT face=3DArial size=3D2> software name attached to = it.</FONT></DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>I want to find the best solution so I = ask all for=20 input.</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>Another ? from</FONT></DIV> <DIV><FONT face=3DArial size=3D2><A=20 = <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV> <DIV><FONT face=3DArial color=3D#0000ff=20 ------=_NextPart_000_001C_01C06472.21CFF4E0--