Hanyuu Posted July 4, 2010 Share Posted July 4, 2010 Hay dear Community^^. I've got some very important Questions for you. I'm gonna make a tool, which will be selled after i finished my work, now i want to assure that nobody of my customers will sell it by him own or hand it to sombody other who didn't bought it. I thought at a Shelter like this : When you run the Tool it will send me an Email with You Computer Name and the Name of the tool (every tool gets another name). Besides this every user gets his own HTML file invested on my webspace, the tool shall read the HTML file if the Text in the html file is : ALLOWED than the tool is allowed to run, if the page doesnt exist or the text is forbidden the tool shall close. Is the any way to do this? Thanks in anticipation Greetz Link to comment Share on other sites More sharing options...
Tvern Posted July 4, 2010 Share Posted July 4, 2010 (edited) Please use the search function, or read the very top topic on this forum (at the time of OP's post) which answers your question in this postedit: I don't know if that allows you to use your own site for verification, but it's as close as you're gonna get to being secure I think. Edited July 4, 2010 by Tvern Link to comment Share on other sites More sharing options...
Xandy Posted July 4, 2010 Share Posted July 4, 2010 (edited) I'm still pretty new to this, but your idea sounds good and i'm pretty sure you could do this with autoit. I'm curious though what happens to your loyal customers who purchase your software when they either have no internet connection or your server it's self is down for whatever reason? Will your customers be able to use the software they paid for when a storm knocks out your servers? I'm sorry for not answering your question, but first I have to make sure I understand what you are trying to do. computer_name, as in lets say: comp1 paired with unique tool_name gets saved to your site is anything stopping me from reusing the computer_name on say 4 machines all named: comp1 with the same tool_name? Edited July 4, 2010 by songersoft Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Hanyuu Posted July 4, 2010 Author Share Posted July 4, 2010 The user who is gonna use my tool on another computer will get a new version and his old version gots deactivated. I have no solution for the case my server will go offline, but I don't know any other solutions for this Shelter with NO server verfication =/ Link to comment Share on other sites More sharing options...
Xandy Posted July 4, 2010 Share Posted July 4, 2010 Sounds good, i'm going to attempt to write a script to email computer_name and the tool_name how would we like the tool names generated? I suppose the most important thing is that we can upload a file to our servers tho we could do that part by hand or even script the email to the ftp program to upload the files. we might use: InetGet to check for the html file on the server more on inetget() in the autoit help file but i've never used inetget myself are you interested in sharing code to complete this task, I don't want your program but i'm interested in securing my code so that I can make money from it. your method sounds good, I think i'm going to try it. Do you wanna work on this together? Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Hanyuu Posted July 4, 2010 Author Share Posted July 4, 2010 (edited) Ya i would gladly work together^^. But i can't give you my code because i just started to code it and it's a lot of work to complete it yet. But we coul try these methods on any sample script. For an script for an send an email we could look at the code "XProtec.au3" (link posted by Tvern). Edited July 4, 2010 by Hanyuu Link to comment Share on other sites More sharing options...
Xandy Posted July 4, 2010 Share Posted July 4, 2010 (edited) right on, that's what i'm talking about so i make a script that sends me an email with a incrementing number starting with 0 to be the tool_name and computer_name? thats the idea? yes I downloaded XProtec.au3 haven't looked at it really yet i've been up awhile was going to look at it tomorrow i'll give it a look now. wow yah XProtec.au3 looks like what we're looking for Edited July 4, 2010 by songersoft Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Hanyuu Posted July 4, 2010 Author Share Posted July 4, 2010 Yes that's right the text of the email should be " Tool with ID $nameoftheuser got executed on $ComputernameToolIsExecuted with the IP : $IPofTheUser " (to check IP Range if its executed with a new PC Name). Maybe you have ICQ/MSN? I've got an intesresting key script whitch is using an external Mysql Database, but i didn't try it yet and nerver worked with Mysql^^ Link to comment Share on other sites More sharing options...
Xandy Posted July 4, 2010 Share Posted July 4, 2010 (edited) Maybe you have ICQ/MSN?I've got an intesresting key script whitch is using an external Mysql Database, but i didn't try it yet and nerver worked with Mysql^^I do not have icq/msn I have google talk I guess I could make a account icq or msn Edited July 4, 2010 by songersoft Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Xandy Posted July 4, 2010 Share Posted July 4, 2010 tell you what dude, i'll pickup this project later today after I sleep. I gotta get some rest, i'll have some code for us by June 5th Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
ProgAndy Posted July 4, 2010 Share Posted July 4, 2010 (edited) I would have an idea for a custom protection: -create uniqe serials and save them to your webserver (e.g. use CLSIDs) -The customer can pair his serial with his hardwareID (using your webserver) ...-the serial is now locked for other users, only this PC is allowed. -Now he will be able to use the software one year without connection to the server (but there will be attemps to check the serial) -after one year, the pairing will be rechecked. (maybe you could allow to release the pairing when the software is uninstalled) Edited July 4, 2010 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
Xandy Posted July 5, 2010 Share Posted July 5, 2010 expandcollapse popup#include <GUIConstantsEx.au3> hotkeyset("{PAUSE}", "endscript");in case of disaster this key may end the problem ;hotkeyset("{HOME}", "sendregtous");this key would call email functions no longer needed (depricated) ;differnt browsers may have differant controls, for our shared code example I will choose Internet Explorer based on most Windows Users will have it installed ;$browserpath="C:\Documents and Settings\Joshua Songer\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" $browserpath="C:\Program Files\Internet Explorer\iexplore.exe" ;I'm going to make a free yahoo email account so that I can share the email account login information in this programs source ;(I hope that this is not agaist any yahoo email EULA)... $mailprovideraddress="https://login.yahoo.com/config/login_verify2?&.src=ym" $emaillogin="supersweettester@yahoo.com" $emailpassword="ottffsse";12345678 cough $browsertitlebar="Google - Windows";my homepage is google so this is what appears in my browser titlebar you can either temp change your homepage to google.com ;or copy your browser's titlebar (case sensitive) and make $browsertitlebar="your default titlebar" $appwidth=200 $appheight=200 $done=0 ;create window dialog guicreate("activation software", $appwidth, $appheight) $regbutton = GUICtrlCreateButton("send system info", 20, 20, 100, 20) guisetstate(@sw_show) Do $appmsg=GUIGetMsg() Select case $appmsg = $GUI_EVENT_CLOSE endscript() case $appmsg = $regbutton sendregtous() EndSelect until $done=1 func sendregtous() run($browserpath) WinWaitActive($browsertitlebar) WinSetState($browsertitlebar, "", @SW_MAXIMIZE) sleep(4000) if(WinActive($browsertitlebar)) then;goto yahoo mail send("{f6}") sleep(100) send($mailprovideraddress) sleep(500) send("{enter}") sleep(3000) login() sendemail() sleep(6000) logout() endif EndFunc func login() send($emaillogin, 1) sleep(200) send("{tab}") sleep(100) send($emailpassword) sleep(500) send("{enter}") EndFunc;end login() func sendemail() sleep(3000) send("n") EndFunc;end sendemail() Func logout() ;loging out is tricky for me right now because I bet we differant screen dimentions, font sizes, toolbars, ect... ;we need to try and have the same screen rez at this point what do you use? I use 1280, 960, 32bpp ;loging out is important to me because it ensures that I will not already be logged in when I run this script. ;Being logged in changes the way I would log into the yahoo and I'm just not always going to be logged in either ;so I do it to force the same starting point for my script ;uhmm what I'm saying is these mouseclick coords are going to most likly be differant on your machine MouseClick("left", 299, 239) EndFunc;end logout() Func endscript() tooltip("") $done=1 exit EndFunc;end endscript() ;it needs work and info from you but it's a start ;thank you please respond : v) Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) Link to comment Share on other sites More sharing options...
Hanyuu Posted July 5, 2010 Author Share Posted July 5, 2010 Finished Source to get "Allowed" or "Forbidden" Value $Permission = _INetGetSource("http://gnt-fly.de/permission/Kyubinoyoko") If $Permission = "Allowed" then ;Execute successfully Else If $Permission = "Forbidden" then ;Do not execute MsgBox (16, "Error", "Deine Version von Kyubinoyokos Ultimate Resource Editor wurde wegen Verdacht auf Weitergabe deaktiviert, setze sich mit Kyubinoyoko in Verbindung [ ICQ : 416680229 ]" ) Exit Else MsgBox (16, "Error", "Unbekannte Version des Tools, Anwendung wurde angehalten." ) endif endif Source to send email (not my work!) Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") #include <_INetSmtpMailCom.au3> $ToolID = "Hanyuu" $IPAdress = "Put in code to find the IP of the Computer" $PCName = @Computername ;################################## ; Variables ;################################## $SmtpServer = "smtp.web.de" ; address for the smtp-server to use - REQUIRED $FromName = "Resource Editor" ; name from who the email was sent $FromAddress = "MAIL FROM" ; address from where the mail should come $ToAddress = "MAIL TO" ; destination address of the email - REQUIRED $Subject = $ToolId&"/"&$PCName&"/"&$IPAdress ; subject from the email - can be anything you want it to be $Body = "Details"&@CRLF&"Der Benutzer mit der Kennnummer "&$ToolId&@CRLF&" führte den Resource Editor auf dem Computer namens "&$PCName&" aus."&@CRLF&"und benutze "&$IPAdress&" als IP Adresse." ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = "" ; the file you want to attach- leave blank if not needed $CcAddress = "" ; address for cc - leave blank if not needed $BccAddress = "" ; address for bcc - leave blank if not needed $Importance = "Normal" ; Send message priority: "High", "Normal", "Low" $Username = "SENDER MAIL" ; username for the account used from where the mail gets sent - REQUIRED $Password = "PASSWORD" ; password for the account used from where the mail gets sent - REQUIRED $IPPort = 587 ; port used for sending the mail normaly 25 $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS ;################################## ; Script ;################################## $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl) UDF for this : ;################################## ; Include ;################################## #Include<file.au3> ; ; The UDF Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) Local $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then $objEmail.HTMLBody = $as_Body Else $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then $objEmail.AddAttachment ($S_Files2Attach[$x]) Else ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF) SetError(1) Return 0 EndIf Next EndIf $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer If Number($IPPort) = 0 then $IPPort = 25 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort ;Authenticated SMTP If $s_Username <> "" Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password EndIf If $ssl Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Set Email Importance Switch $s_Importance Case "High" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High" Case "Normal" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal" Case "Low" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail="" EndFunc ;==>_INetSmtpMailCom ; ; ; Com Error Handler Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) $oMyRet[0] = $HexNumber $oMyRet[1] = StringStripWS($oMyError.description, 3) ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF) SetError(1); something to check for when this function returns Return EndFunc Link to comment Share on other sites More sharing options...
Xandy Posted July 5, 2010 Share Posted July 5, 2010 holy cow, thank you Human Male Programmer (-_-) Xandy About (^o^) Discord - Xandy Programmer MapIt (Tile world editor, Image Tile Extractor, and Game Maker) 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