1 2 Previous Next 15 Replies Latest reply on Jan 26, 2010 10:16 PM by KimZ

    How to program to limit a free trial

    KimZ

      Title

      How to program to limit a free trial

      Post

      Hello

       

      Please could someone give me guidance on the following:

      I wish to supply my program as a 30 day free trial. Thereafter the program will  not work unless a specific code is entered.

      The program is supplied as a runtime solution and has certain fields which are immediately populated upon first opening, with serial numbers and dates which the user cannot change, so these can used as reference points in the registration script to check the registration status.

       

      I am running fmp10 advanced on windows.

       

      Thanks

      Kim

        • 1. Re: How to program to limit a free trial
          MikeyG79
             have it run a script at open that checks the current date against the beginning date.
          • 2. Re: How to program to limit a free trial
            KimZ
               Thanks Mikey, but I also need it to check against an entered code to see if it qualifies. Do you know which scripts would be used ?
            1 of 1 people found this helpful
            • 3. Re: How to program to limit a free trial
              philmodjunk
                

              MikeyG79 wrote:
              have it run a script at open that checks the current date against the beginning date.

               

              Some people get around that one by resetting their computer's date and time, opening the database and then resetting the clock time back to the correct setting...
              • 4. Re: How to program to limit a free trial
                KimZ
                  

                I received this reply from a guy on another forum. Can any of you guru's out there comment on whether you think it will work or whether it will have problems :

                 

                "<!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if !mso]&gt;&lt;object classid=&quot;clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D&quot; id=ieooui&gt;&lt;/object&gt; &lt;style&gt; st1\:*{behavior:url(#ieooui) } &lt;/style&gt; &lt;![endif]  --><!--  /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0cm;      margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:&quot;Times New Roman&quot;;} @page Section1      {size:612.0pt 792.0pt;      margin:72.0pt 90.0pt 72.0pt 90.0pt;      mso-header-margin:36.0pt;      mso-footer-margin:36.0pt;      mso-paper-source:0;} div.Section1      {page:Section1;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:&quot;Table Normal&quot;;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0cm 5.4pt 0cm 5.4pt;      mso-para-margin:0cm;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;} &lt;/style&gt; &lt;![endif]  -->

                You can create a single-record table that no end user can go to, and populate it if (and only if) empty when file is first opened with Get(currentdate) or GetAsDate (Get (CurrentHostTimeStamp)).

                Then check in every subsequent launch (launches where the field is NOT empty) that Get(currentdate) ≤ ThatTable::ThatField + 30.

                However, you can't prove that some lowlife end user did not set the date on their computer BACK (to 12/1/2009 or for that matter 1/1/1995) once they get the message that their demo copy has expired. If you want to provide partial protection against that, put a second field in the single-record table and fill it with the word "expired" the first time that Get(currentdate) ≤ ThatTable::ThatField + 30 and in your check-script check to see if either ThatTable::AlreadyExpired = "Expired" OR Get(currentdate) ≤ ThatTable::ThatField + 30 and quit out from under them either way.

                Finally, it's a good idea to make a copy of your database then use the Tools menu Developer Utility to create a new copy from which full access privs have been permanently stripped. And distribute THAT copy as your demo. That protects you from lowlife end users who would use a password cracking utility on your solution and thereby disable all of your check scripts."

                 



                • 5. Re: How to program to limit a free trial
                  Steve Wright
                    

                  Personally, As PhilModJunk stated.. the date method is rather easy to bypass.

                   

                  Personally,  I would recommend setting a global variable $$demo_mode = 1  on startup

                   

                  Then throughout your solution, check if $$demo_mode = 1 and restrict actions such as only allow 10 records to be created

                  Dont allow access to certain areas etc etc.

                   

                  Of course, this would mean compiling two versions of your runtime.

                  1 for demo purposes and one standard with $$demo_mode commented out.

                   

                   

                  It really depends on the purpose of your solution.  I just wouldnt trust the date way ever.

                  • 7. Re: How to program to limit a free trial
                    Steve Wright
                      

                    If the data in your system doesnt rely on dates in any way shape or form, then they can simply change their computers date

                    on startup of the OS.  Theres no need to change it back. So date checking will be of no use.

                     

                    I know of a solution made in filemaker where dates are of no importance. 

                    They  use the date check method basically giving their demo away free.  For that reason, im not going to mention the solutions name.   Far too many people are aware of date checking protection and ways around it.

                     

                    Filemaker aside... theres program called AutoData which requires a yearly subscription ,

                    garages throughout the UK and no doubt other places have been using this software free for years with a date cracker. 

                    It basically provides a huge database of information on vehicles... Dates are of no importance !

                    Only in the last year or so I beleive, they changed their protection methods...

                     

                    I have found my solution on cracking sites, where people are asking for ways to get around the protection..

                    Dont think because you cant see it.. that it doesnt happen ! 

                     

                    Of course, if it does rely on dates then it could work as long as you perform checks in various places at critical points.

                     

                     

                    • 8. Re: How to program to limit a free trial
                      mrvodka
                        

                      Sure using a date has its issues. However, if you use a log table and record each time one gets in, you can check against that last timestamp to make sure that the system clock is not before that last timestamp and not after the expiration timestamp. It will be difficult and very annoying to try and time a system clock change to just the right perfect time.

                       

                      Take for example then first time one logs in, it would log the start and expiration:

                       

                      01/26/2010 15:21:22      --->      02/25/2010 15:21:22

                       

                       

                      Next time one logs in it records let say:

                       

                      01/27/2010 18:11:32

                       

                      It would check if its after 01/26/2010 15:21:22 and before 02/25/2010 15:21:22

                       

                       

                      The next time after that:

                      It would check if its after 01/27/2010 18:11:32 and before 02/25/2010 15:21:22

                       

                       

                      and so on. This way if they change their clock, they can not do it before the last recorded time and eventually will run out of time.

                       

                      • 9. Re: How to program to limit a free trial
                        KimZ
                          

                        OK. so the date thing is a potential problem.

                         

                        For our application, I am almost not too concerned, and here is why.  Part of our service is to slightly customise each trial program before it is shipped. Specific information is inserted, e.g. Company name, Logo, Address, Bank details, which make each program specific to a user. SO, in theory, the program cant be copied and cracked for general use, because the critical fields are locked by us and the program is supplied as a runtime with admin access blocked. At worst there might be a couple the get supplied and the recipient has the ability to crack the date. That means that individual gets the program free, but it cannot be used by his mate (unless he orders hs one and uses the same method to crack !!).  Also accurate dates are important to the user of the program so they wont want to contunually reset dates.

                         

                        Am I being naieve ?

                         

                        What mr vodka proposed could be a possibility though.

                         

                        Thanks for you guys' continued input.

                        • 10. Re: How to program to limit a free trial
                          Steve Wright
                            

                          Hi Mr Vodka

                           

                          I just wanted to let you know, Ive sent you a PM regarding this.... with a technique to get around the proposed solution.

                          I still stand firm that the date issue is a bad idea.

                          • 11. Re: How to program to limit a free trial
                            KimZ
                               I was just considering my last post and it probably sounded like dont care if one gets away free. I do care immensely and am very concerned about the cracking issue. Every sale counts. So I really appreciate the efforts of you guys. Please continue to add suggestions and solutions.
                            • 12. Re: How to program to limit a free trial
                              Steve Wright
                                

                              If dates are critical... then yes it would work.

                              Also if you are hard-coding the information then that cuts out the distribution of it.

                               

                              Maybe I am being over the top... but I like to protect my solution as much as possible (although trying not to hinder it)

                               

                              Q.  What happens when the company change their name, for instance become limited or their address ?

                              You would need to distribute a new copy to them to change their details using the same version as released.

                              This could work out labour intensive, another thing to think about when hard-coding details.

                               

                              Again.. it really all depends on the solution.

                              • 13. Re: How to program to limit a free trial
                                mrvodka
                                  

                                I am not disagreeing with you. I just said that it would be a lot harder to get around.   ;)

                                 


                                mr_vodka wrote:

                                It will be difficult and very annoying to try and time a system clock change to just the right perfect time.

                                 



                                • 14. Re: How to program to limit a free trial
                                  Steve Wright
                                    

                                  I agree completely... If a system is date critical such as an invoicing system, as long as (of course) one of the critical dates was auto entered using the system date then you have no issues using this technique.

                                   

                                  I may be coming on too strong here with my objections  :smileyhappy:

                                   

                                  Just consider all angles...

                                  1 2 Previous Next