Results 1 to 14 of 14

Thread: [RESOLVED] Trial Version in programming

  1. #1

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Resolved [RESOLVED] Trial Version in programming

    I am not sure whether this post belong to either Visual Basic.net or Application Development. I apologize if it is posted in the incorrect forum.

    The software program I was working on with a lot of help which I am Grateful for, from this forum is called Symbolic Signs and was meant only to use internally due to the fact that it would be useless for the general public. There are 333 Symbolic Signs in use globally.
    The program was developed to search for a the symbolic sign you require out of the 333 signs in a second to be used in Fire Surveys and quotations.

    I have realized now that probably some Fire Companies might benefit from it as well. I am now looking at something like a 30 day trial.

    I have read through the posts that these trial versions can easily be cracked. I do not know how, because the user see only the form. The user can not get into the form code.....or am I wrong. This would anyway not be a problem for me, because the program would not be in such a high demand. The purpose of the trial version is only to establish whether the company could use it. If they can.....purchase it and if they can't.... or has something better, ditch it.

    My intention is to supply 2 CD's. One CD as the Trial Version CD and One as a Full Version CD.

    I have played around with some code to do that, but thus far I was unsuccessful. I tried to use some code on this forum and other forums, but it appears not all code works everywhere. Does anybody have any suggestions?

    Thank You in advance.

  2. #2
    Super Moderator Shaggy Hiker's Avatar
    Join Date
    Aug 2002
    Location
    Idaho
    Posts
    38,616

    Re: Trial Version in programming

    How do you determine that the trial period is over? If it's based on the system time of the computer, the easiest thing to do would be to change the system time, such that your trial version would think that the trial was still going on. Also, depending on how you determine the trial period duration, it might be relatively trivial to change that time to create a perpetual period. For example, if you stored something in Settings, it would be simple. If you stored in the registry, it would be pretty simple. So, it really comes down to how you expect to be checking the duration.
    My usual boring signature: Nothing

  3. #3

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Quote Originally Posted by Shaggy Hiker View Post
    How do you determine that the trial period is over? If it's based on the system time of the computer, the easiest thing to do would be to change the system time, such that your trial version would think that the trial was still going on. Also, depending on how you determine the trial period duration, it might be relatively trivial to change that time to create a perpetual period. For example, if you stored something in Settings, it would be simple. If you stored in the registry, it would be pretty simple. So, it really comes down to how you expect to be checking the duration.
    Shaggy Hiker,
    On your first question, If the client get smart and has IT people I suppose they will be able to manipulate the time. I have seen on other posts the people assisting us like the Moderators have advised this in numerous cases and it would be best to get Trial version developers to do this type of protection. This program is so small, the whole project folder is only 220mb. The Database consists of 333 Items.
    Last edited by kobusjhg; Sep 24th, 2023 at 11:50 AM.

  4. #4
    PowerPoster
    Join Date
    Nov 2017
    Posts
    2,891

    Re: Trial Version in programming

    No matter what you do as far as trying to limit the trial to a specific number of times the program can be launched, or limit the number of days it can be used, there will almost always be ways around them.

    One other option is to distribute a free "light" version of your program that lacks some key features, but has enough for the end user to be able to use it and determine if it is something they would benefit from buying.

    In that case, there is no manipulation that can be done on the client side to work around the limitations, since the version of the program that they would have simply doesn't contain the code to do everything that the paid version does.

  5. #5

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Quote Originally Posted by OptionBase1 View Post
    No matter what you do as far as trying to limit the trial to a specific number of times the program can be launched, or limit the number of days it can be used, there will almost always be ways around them.

    One other option is to distribute a free "light" version of your program that lacks some key features, but has enough for the end user to be able to use it and determine if it is something they would benefit from buying.

    In that case, there is no manipulation that can be done on the client side to work around the limitations, since the version of the program that they would have simply doesn't contain the code to do everything that the paid version does.
    OptionBase1 Thank You, It is like this everywhere. The smarter honest people get, the smarter criminals become

  6. #6
    Fanatic Member 2kaud's Avatar
    Join Date
    May 2014
    Location
    England
    Posts
    915

    Re: Trial Version in programming

    What's the cost of the full version? How many copies would you be expecting to sell? What is this income in comparison to the cost of implementing a 'robust' trial version? Implementing a 'simple' trial version isn't that difficult or costly with some obscuration - but for a 'techie' would probably be fairly easy to circumvent. At the other end of the scale you go for remote sever authentication which is more complex and much more expensive. What's the expected ROI (return on investment)?
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  7. #7

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Quote Originally Posted by 2kaud View Post
    What's the cost of the full version? How many copies would you be expecting to sell? What is this income in comparison to the cost of implementing a 'robust' trial version? Implementing a 'simple' trial version isn't that difficult or costly with some obscuration - but for a 'techie' would probably be fairly easy to circumvent. At the other end of the scale you go for remote sever authentication which is more complex and much more expensive. What's the expected ROI (return on investment)?
    Cost of The full version = Probably in the region of R 500.
    How many copies = I do not know, there is in the region of 5000 Fire Companies registered
    The intention is to do a video showing how the program works and supply a Trial version with it. Apart from this there is a very detailed
    help File including images.

    The trial version is like a marketing thing. I f they like it, the purchase it. If they don't have a use for it, they ignore it.

    What would be the alternative?

  8. #8
    Fanatic Member 2kaud's Avatar
    Join Date
    May 2014
    Location
    England
    Posts
    915

    Re: Trial Version in programming

    What would be the alternative?
    It's really a matter of how much effort/cost you're willing to go to to protect the trial limitations from being 'hacked' into a full version. If the trial version is limited to a specific time/use etc then easy/cheap ways of achieving this will be able to be bypassed at some point unless you expend time/expense in making this nearly 'hack proof'. It's whether the time/expense of making this type of trial version is worth it as against the cheaper but probably hackable version. if the trial version has reduced functionality (whatever that may mean fro your product) and to get the full functionality you need to buy the full version (no settings etc to turn a trial into full) then you don't have the effort/cost of trying to protect a trial from being hacked.

    It's really a trade-off thing which probably only you know what's justified and what's not which sort of depends upon how much you expect to make from sales.
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  9. #9

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Quote Originally Posted by 2kaud View Post
    It's really a matter of how much effort/cost you're willing to go to to protect the trial limitations from being 'hacked' into a full version. If the trial version is limited to a specific time/use etc then easy/cheap ways of achieving this will be able to be bypassed at some point unless you expend time/expense in making this nearly 'hack proof'. It's whether the time/expense of making this type of trial version is worth it as against the cheaper but probably hackable version. if the trial version has reduced functionality (whatever that may mean fro your product) and to get the full functionality you need to buy the full version (no settings etc to turn a trial into full) then you don't have the effort/cost of trying to protect a trial from being hacked.

    It's really a trade-off thing which probably only you know what's justified and what's not which sort of depends upon how much you expect to make from sales.
    I will have to go with a self coded protection for now. I will later when it is getting bigger invest in something more secure.

    It is not common for the public to make use of symbolic signs.

  10. #10
    Fanatic Member 2kaud's Avatar
    Join Date
    May 2014
    Location
    England
    Posts
    915
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  11. #11

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    2kaud, Thank you. I have read through the first link. Thank you very much this is very valuable info

  12. #12
    Fanatic Member 2kaud's Avatar
    Join Date
    May 2014
    Location
    England
    Posts
    915

    Re: Trial Version in programming

    If it's based on the system time of the computer, the easiest thing to do would be to change the system time, such that your trial version would think that the trial was still going on
    Base it on the time from an internet time server (NTP). Then it can't be changed - but does require internet access when program is used. See:
    https://gist.github.com/mutin-sa/eea...1e5550d94b0453
    http://www.time.org.za/
    https://stackoverflow.com/questions/...tp-read-vb-net
    https://www.codeproject.com/Tips/525...ime-and-Extras
    All advice is offered in good faith only. You are ultimately responsible for the effects of your programs and the integrity of the machines they run on. Anything I post, code snippets, advice, etc is licensed as Public Domain https://creativecommons.org/publicdomain/zero/1.0/

    C++23 Compiler: Microsoft VS2022 (17.6.5)

  13. #13

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Quote Originally Posted by 2kaud View Post
    Base it on the time from an internet time server (NTP). Then it can't be changed - but does require internet access when program is used. See:
    https://gist.github.com/mutin-sa/eea...1e5550d94b0453
    http://www.time.org.za/
    https://stackoverflow.com/questions/...tp-read-vb-net
    https://www.codeproject.com/Tips/525...ime-and-Extras
    Thank You

  14. #14

    Thread Starter
    Lively Member kobusjhg's Avatar
    Join Date
    Jul 2023
    Location
    Pretoria, South Africa
    Posts
    124

    Re: Trial Version in programming

    Good Day Everybody,

    It took me some time to do this trial code: -
    I do know that it is insecure, but I do not have a server. The software is not that valuable in order to get a paid secure system, but I think it is working for me for now.

    The code is actually writing to the registry therefore the user will have to have knowledge on how to delete it from the registry.
    It writes a TrialTimestamp in the registry where the date of first installation is recorded and after 30 days the software will be expired.
    The user can only use the software if he/she sets the system date back.
    As we all know by setting the system date back, it might affect other programs which might not work if the system is not correct
    The User will not even be able to re-install the software unless the registry key or entry is deleted.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim registryKey As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\Symbolic Signs")

    ' Check if the timestamp exists in the Registry
    Dim storedTimestamp As String = TryCast(registryKey.GetValue("TrialTimestamp"), String)

    If String.IsNullOrEmpty(storedTimestamp) Then
    ' First run, store the current timestamp
    registryKey.SetValue("TrialTimestamp", DateTime.Now.ToString())
    MessageBox.Show("First Run...")
    Else
    ' Convert the stored timestamp back to DateTime
    Dim storedDateTime As DateTime = DateTime.Parse(storedTimestamp)

    ' Check if the stored timestamp is later than the current date
    If storedDateTime.Add(New TimeSpan(1, 0, 0, 0)) > DateTime.Now Then
    MessageBox.Show("Trial Active!")
    Else
    MessageBox.Show("Trial Expired!")

    ' Disable or limit features here
    MessageBox.Show("Trial period has expired. The program will now exit.")
    Application.Exit()
    End If
    End If
    ' Close the RegistryKey when done
    registryKey.Close()
    End Sub

    If anybody has any critisism or any proposals to improve, kindly comment. It will be appreciated.

    Kind Regards

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width