1. Re-Install?

------=_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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>i.e:</FONT></DIV>
<DIV>&nbsp;</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>&nbsp; or anywhere that my program can =
find it=20
later.</FONT></DIV>
<DIV>&nbsp;</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>&nbsp; if the info weren't encrypted =
and hidden in=20
a registry key not haveing my</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp; software name attached to =
it.</FONT></DIV>
<DIV>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Another ? from</FONT></DIV>
<DIV><FONT face=3DArial size=3D2><A=20
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>

------=_NextPart_000_0007_01C06476.9FCE7480--

new topic     » topic index » view message » categorize

2. Re: Re-Install?

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

new topic     » goto parent     » topic index » view message » categorize

3. Re: Re-Install?

------=_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>&nbsp;</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--

new topic     » goto parent     » topic index » view message » categorize

4. Re: Re-Install?

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

new topic     » goto parent     » topic index » view message » categorize

5. Re: Re-Install?

------=_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>&nbsp;</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>&nbsp;&nbsp;&nbsp; <FONT =
face=3DArial=20
color=3D#0000ff size=3D2>a. user's name and their PC's C: =
drive&nbsp;volume serial=20
number</FONT></SPAN></DIV>
<DIV><SPAN class=3D430550601-13122000>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <FONT =
face=3DArial=20
color=3D#0000ff size=3D2>c. day increment counter</FONT></SPAN></DIV>
<DIV><SPAN class=3D430550601-13122000>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;&nbsp;&nbsp; <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>&nbsp;</DIV>
<DIV><SPAN class=3D430550601-13122000>&nbsp;&nbsp;&nbsp; <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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
  <DIV><FONT face=3DArial size=3D2>i.e:</FONT></DIV>
  <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</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>&nbsp; or anywhere that my program =
can find it=20
  later.</FONT></DIV>
  <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</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>&nbsp; if the info weren't encrypted =
and hidden=20
  in a registry key not haveing my</FONT></DIV>
  <DIV><FONT face=3DArial size=3D2>&nbsp; software name attached to =
it.</FONT></DIV>
  <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
  <DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT>&nbsp;</DIV>
  <DIV><FONT face=3DArial color=3D#0000ff=20

------=_NextPart_000_001C_01C06472.21CFF4E0--

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu