Jump to content

How to license / sell autoit programs?


Recommended Posts

I know this has been asked before, but the best bits of information I could find were from 2007.... close to a decade ago. There must have been some developments / changes since then.

What I am trying to do is sell a program I created in autoit. I want to have some kind of license system, where the end user will buy a license for each computer they install my program on. This is, however, the first time I've ever written something good enough to actually sell, and I am looking for advice from anyone else who has done this. What specifically I am looking for:

  • How do I generate / store / confirm licenses are valid? Are there any UDFs for this?
  • I know obfuscation was a thing at one point, does it still work? Have better methods to protect the source code been developed?

Any ideas or experience would be appreciated.

 

The software itself is an auction program. First the user enters in all the lots into the system. Then during the auction, the user sits next to the auctioneer, and the program lets them go through item by item, and they can enter in the winning bid and bidder(s) and go to the next file. At any time, a bidder can go to the cashier who can bring up all the bidder's won lots, and  provides totals for them to enter into the till.

Edited by corgano

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Link to comment
Share on other sites

There are a few UDF's or scripts out there I believe. I seem to recall that JohnOne did one.

It is 'obfuscation' not 'observation', and if I recall rightly (unsure though), it is no longer being used ... there was a topic about that recently.

While I'm not a fan of such things, except for security reasons, it should be simple enough to devise your own method.

[1] Get details like Username, Computer name, HDD serial, email address, etc.

[2] Have your program export a 'Details key', which is sent to you. Encrypted of course.

[3] Have a program that grants a 'License key' for those details, which you then send back to user.

[4] The program you provided the User with, then checks that 'License key', having the same code as your checking program, to do it. If a match occurs, the program is activated.

Your checking code should allow for some changes, so perhaps a few matches are possible. If the HDD serial changed for instance, you would want most of the other details to still match. If the HDD serial stayed the same, you could be more flexible with the other details.

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Link to comment
Share on other sites

To add on to TheSaint, because I have seen and posted this link in another thread

 

There are a few obfuscators floating around for AutoIt too. None are supported but I've used a couple that work. A couple of things you should also do before distributing is encrypt any strings you use in your script. And make your password string some really random and difficult password to  convert. Like start with a base string and then pass it through many different functions that actually do stuff (like loading data) and at the same time start adding on, removing, mixing, etc, your password.

Also, the obfuscators out there are a few years old and this feature wasn't around for them

Local $pMsgBox = MsgBox

$pMsgBox("", "Title", "Message box called using a variable.")

Store all your functions in variable and obfuscate the variables.

Local $OJ9DF8JHQODF9ASDFN_ = MsgBox

$OJ9DF8JHQODF9ASDFN_("", "Title", "Message box called using a non-documenting variable.")

 

Link to comment
Share on other sites

I typo'd obfuscation, fixed.

I had no idea you could declare functions as variables! That is REALLY cool! :D I'll have to look into that. what is it labeled under in the help file?
 

Has anyone successfully sold any programs made with autoit? Care about sharing the experience?

Edited by corgano

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Link to comment
Share on other sites

The method I demonstrated was just a sort of password or serial number requirement, the serial is encrypted in the compiled script, but could just as easily be checked against in an online database.

There are many paths you could take, which has already been stated, one of which is, compile a new exe with a different hash for every sale, and check that for validity against your database.

Personally, I'd just sell them with onlya restriction of an agreed to licence at point of sale, that user is not allowed to install on more machines than they paid for. Because at the end of the day, if someone really wants to, they just steal your source code, which is something for which you have no control.

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...