corgano Posted March 12, 2016 Share Posted March 12, 2016 (edited) 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 March 12, 2016 by corgano 0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e Link to comment Share on other sites More sharing options...
TheSaint Posted March 12, 2016 Share Posted March 12, 2016 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. tarretarretarre 1 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) Link to comment Share on other sites More sharing options...
InunoTaishou Posted March 12, 2016 Share Posted March 12, 2016 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 More sharing options...
corgano Posted March 12, 2016 Author Share Posted March 12, 2016 (edited) I typo'd obfuscation, fixed. I had no idea you could declare functions as variables! That is REALLY cool! 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 March 12, 2016 by corgano 0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e Link to comment Share on other sites More sharing options...
InunoTaishou Posted March 12, 2016 Share Posted March 12, 2016 I don't even know if it's in the help file. It's something I saw a few months back on one of the topics and it stuck. I haven't sold any but I have made a program that was used by a lot of people. Link to comment Share on other sites More sharing options...
JohnOne Posted March 12, 2016 Share Posted March 12, 2016 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now