Jump to content
Sign in to follow this  
russell

Anti Piracy in my script

Recommended Posts

russell

Ok so iv played around and now im about to write a big script. I want to post it on my best-friends web site for others to download however the twist is this: Usage will be subscription based (monthly) and only able to run on 1 pc per user.

I thought at first having the script check an SQL database on the website server but anyone could just set there own or (pirated) SQL server up and do a loop-back. I understand ounce i put this out there, i cant pull it back so i want it to be right the first time. Been racking my brain but the best i can come up with is it login to a Forums board i host on the same server and stay logged in. But hmm could they not just do a loop-back again? Any help or guidance is much appreciated.


muppet hands are so soft :)

Share this post


Link to post
Share on other sites
smartee

hi russell,

Umm, this may break your heart, but it will be VERY difficult to secure your program. :)

Interpreted languages, such as AutoIt, while a delight to work with, are inherently insecure.

That doesn't mean don't try to secure your script, I'm just saying don't dispose too much energy doing so, for those so motivated will likely succeed anyway.

Remember, do NOT include sensitive data such as passwords in your script.

Umm, also, search the forums, there are a numbers of posts of this nature that may offer you another perspective.

Regards,

-smartee

Share this post


Link to post
Share on other sites
water

The only thing that comes to my mind is in the example scripts section.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-10-31 - Version 1.3.4.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
Tomoya

I got this function from somewhere around the autoit forums and was going to try to use it to write the ID I was getting from it to a file on the server and then check it everytime the program was run.

Func _HWID()
    $osdrive = StringLeft(@SystemDir, 3)
    $original = "0"&@CPUArch & @KBLayout & DriveGetSerial("C:\") & StringUpper(DriveGetType($osdrive)) & DriveSpaceTotal ($osdrive)
    $string2 = StringMid($original, Round(StringLen($original)/2), Round(StringLen($original)/2))
    $string2_mod = _StringToHex(_StringReverse($string2))
    $original = _StringEncrypt(1, $original, $string2_mod, 4)
    Return $original
EndFunc

Post back if you happen to get any ideas. I'm doing the same in a ever search to secure the program I made. Like others have said though it seems like who ever wants the program and trys hard enough can get it, but then you have to think of if they were that willing to not pay for it they were not going to subscribe to your service anyway. Like downloading movies, just cause I downloaded the movie does not mean you lost a sale because I still would not have paid to see it because I just don't have money to pay 9$ for a film. I will keep checking this topic. Good luck!

Edited by Tomoya

Share this post


Link to post
Share on other sites
russell

All of you, good ideas. It will take some trial and error with each suggestion but the XproTec deff has my attention. I know that all programs are crackable, other wise there wouldn't be Windows loaders and keygens for some of the biggest software. I believe the extremely low price i set on the program will spark the idea that it just alot less time (since time is money , cheap too) to just buy it than try and crack it. But like myself, a few attempts are made in the begging and if i fail and like it i end up purchasing it. Mainly im afraid that someone will get a subscription then had it to a friend or try and run it on several pcs. But seriously i hope this thread stays alive and we all benefit from it.


muppet hands are so soft :)

Share this post


Link to post
Share on other sites
russell

I keep getting syntax errors

_StringReverse(): undefined function.

_StringToHex(): undefined function.

_StringEncrypt(): undefined function.

when checking this.

Any suggestions?

I got this function from somewhere around the autoit forums and was going to try to use it to write the ID I was getting from it to a file on the server and then check it everytime the program was run.

Func _HWID()
    $osdrive = StringLeft(@SystemDir, 3)
    $original = "0"&@CPUArch & @KBLayout & DriveGetSerial("C:\") & StringUpper(DriveGetType($osdrive)) & DriveSpaceTotal ($osdrive)
    $string2 = StringMid($original, Round(StringLen($original)/2), Round(StringLen($original)/2))
    $string2_mod = _StringToHex(_StringReverse($string2))
    $original = _StringEncrypt(1, $original, $string2_mod, 4)
    Return $original
EndFunc

Post back if you happen to get any ideas. I'm doing the same in a ever search to secure the program I made. Like others have said though it seems like who ever wants the program and trys hard enough can get it, but then you have to think of if they were that willing to not pay for it they were not going to subscribe to your service anyway. Like downloading movies, just cause I downloaded the movie does not mean you lost a sale because I still would not have paid to see it because I just don't have money to pay 9$ for a film. I will keep checking this topic. Good luck!


muppet hands are so soft :)

Share this post


Link to post
Share on other sites
Melba23

russell,

If you look at the pages in the Help file dealing with those functions, you will see that you need the String.au3 include file - add this at the top of your script:

#Include <String.au3>

Useful thing that Help file. :)

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Tomoya

russell,

If you look at the pages in the Help file dealing with those functions, you will see that you need the String.au3 include file - add this at the top of your script:

#Include <String.au3>

Useful thing that Help file. :)

M23

This is correct. My fault for not adding the #include to it. Slipped my mind. Just to give you a future note a "Undefined Function" error means that you are almost always missing a #Include at the top of your script. ><

You can use a MsgBox to display the hwid to make sure it works. I did it a few times after restarting the computer / the program and it seemed to generate the same number. My only problem is that I cant figure out how to go about saving it to the server so it can be later read.

Edited by Tomoya

Share this post


Link to post
Share on other sites
russell

It seems that XProTec has the [

Func _HWID()     $osdrive = StringLeft(@SystemDir, 3)     $original = "0"&@CPUArch & @KBLayout & DriveGetSerial("C:\") & StringUpper(DriveGetType($osdrive)) & DriveSpaceTotal ($osdrive)     $string2 = StringMid($original, Round(StringLen($original)/2), Round(StringLen($original)/2))     $string2_mod = _StringToHex(_StringReverse($string2))     $original = _StringEncrypt(1, $original, $string2_mod, 4)     Return $original EndFunc

built into it.

Edited by russell

muppet hands are so soft :)

Share this post


Link to post
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
Sign in to follow this  

×