Jump to content

protecting/hiding AutoIt for client computer


Recommended Posts

If I develop a proprietary AutoIt script that takes me hundreds of hours and then use it for multiple clients where I leave it and the GUI on their system to use by them is there a way to protect it so that it can't be copied or changed or manipulated or the source viewed?

In a similar vein- is there a way to create a GUI and structure that uses AutoIt in the background but looks like it was written in a much more expensive and hard to program language? (and is locked up to hide the fact that it wasn't written in this language)  (I of course don't want to have to learn the other language)

 

Link to comment
Share on other sites

1 hour ago, bobbiehansen said:

If I develop a proprietary AutoIt script that takes me hundreds of hours and then use it for multiple clients where I leave it and the GUI on their system to use by them is there a way to protect it so that it can't be copied or changed or manipulated or the source viewed?

In a similar vein- is there a way to create a GUI and structure that uses AutoIt in the background but looks like it was written in a much more expensive and hard to program language? (and is locked up to hide the fact that it wasn't written in this language)  (I of course don't want to have to learn the other language)

 

What you're asking for is a bit expensive to do. The best solution to your problem is to use your AutoIt program as a background server for your other application. The two programs must communicate based on queries on the same machine. This approach is expensive in terms of system resources.

Link to comment
Share on other sites

2 hours ago, bobbiehansen said:

is there a way to protect it so that it can't be copied or changed or manipulated or the source viewed?

in short, no. if a user is sophisticated and motivated enough, they will have your source code. as to how, that's beyond the scope of this forum, and naturally against the forum rules to discuss.

but:

what you can do is instead of selling (and halfheartedly protecting) your code, sell (and maintain) support for it. sure, they can have your code, but who's better than the author himself to provide support for it? support, may i remind, includes not only present aspects like bug fixes and user training, but also users requirements analysis, customization, feature requests, and in general - future aspects.

2 hours ago, bobbiehansen said:

is there a way to create a GUI

in short, yes, and quite simply too. your AutoIt GUI can be fully customized. so, have a look at your desired expensive software - fonts, color scheme, controls layout, etc. - and mimic its appearance in your AutoIt GUI.

P.S. welcome to the AutoIt forum!

Edited by orbs

Signature - my forum contributions:

Spoiler

UDF:

LFN - support for long file names (over 260 characters)

InputImpose - impose valid characters in an input control

TimeConvert - convert UTC to/from local time and/or reformat the string representation

AMF - accept multiple files from Windows Explorer context menu

DateDuration -  literal description of the difference between given dates

Apps:

Touch - set the "modified" timestamp of a file to current time

Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes

SPDiff - Single-Pane Text Diff

 

Link to comment
Share on other sites

Thank you for all the helpful advice and the link to the rules since I'm new here. Just to be paranoid, I'm pretty sure I hope what I'm asking isn't against the forum rules.  In fact I'm trying to do the opposite- prevenent decompilation of the code.

I'm not a programmer by trade, use to know Basic and Fortran a bit and can write simple Excel macros. The scripting would be part of a broader service I offer for automation.  Hence my start of learning AutoIt and kudos to the community for such a neat language- I'm really enjoying it.  

So I'm not super up on all the different programming languages.  But what I was hoping is to create a GUI that looks like the script was written in a robust and commonly used programming language so that it would give the script a bit more of a higher end look. 

Would it be tough to write a very simple program in C or C++ to run the AutoIt hidden in the background?  Is that what was meant by "as a background server for your other application"?  Then I can also truthfully tell the client that it's programmed in C for more cred and to confuse the trail.

 

 

Link to comment
Share on other sites

5 minutes ago, bobbiehansen said:

Would it be tough to write a very simple program in C or C++ to run the AutoIt hidden in the background?

Truthfully written in C. :mad2:

If you are able to create a convincing UI in C++ you can make the whole application so you don't need AutoIt.

When the words fail... music speaks.

Link to comment
Share on other sites

@bobbiehansen  Just to avoid confusion, you would be better to consider AutoIt as a scripting language, rather than as a programming language.

Don't get me wrong.  AutoIt is a very powerful scripting language.  Some of the more advanced people here can really make it stand up, sing, and dance. (Not to mention the amazing work the developers put into it.)

As such, there are limitations to what you can do to protect your source code.  I think that @orbs gave you the best advice.  Rather than selling your script as a "program" to your clients, go ahead and provide the "compiled" version of your script, and pitch it as a service.  You can still charge a reasonable up-front cost for customizing, installing, and implementing your script, then charge them a fee for maintenance, to include bug fixes and technical support.

This also provides you with an ongoing revenue stream, rather than a one-time sale.

Edited by willichan
Link to comment
Share on other sites

I worked for an IT multi-national enterprise for many years.  And there is no simple technical solution to avoid 100% unauthorized usage of software without a backlash to help desk.  They finally choose to have a trustworthy relationship with their customers.  In other words, don't sell your stuff to companies with doubtful history.

Link to comment
Share on other sites

Are you aware you can compile to exe? 

In your first post it looks like you are saying you leave full autoit scite at client location. Thats not needed.

Protection to reverse engineering can be complex in any programming language.

 

Link to comment
Share on other sites

Yaa, wasn't really fully aware of the compiling process yet.  Good to know.  Just started to learn it through SciTE where you run it from the editor. 

My biggest thing is to create the program so the GUI can't be obviously visually identified as written via AutoIT.  Sounds like with some cleverness it can be made to look like it was written in another program.

For example- have the top have dropdowns like: File Edit View Tools Options Help.  And small icons in the top that have a save icon(floppy), print icon, etc.   

Basically I have a bunch of simple PC programs that aren't from big companies like Microsoft or  Adobe, etc but that all look roughly the same.  So my assumption is that they've probably been written in the same or similar programming language that uses a starting template that can be modified for the program.    I want my AutoIT programs (err, scripts) GUIs to look like pretty close to those.

I'll continue to learn. Thanks for the advice.

Edited by bobbiehansen
clarity
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...