[AutoIt] HWID Funktion

12/02/2013 22:40 Lumi#1
Ich kann nicht versichern, dass es sicher sein wird, aber ich teile es gerne mit euch. Vielleicht könnt ihr ja damit was anfangen.

Code:
; => Start Fenster

#region Log GUI
$log = "Initializing Treasure Creator"
$startlog = GUICreate("Loading...", 300, 120, -1, -1, $WS_DLGFRAME)
$labellog = GUICtrlCreateEdit($log, 10, 10, 278, 78, BitOR($ES_READONLY, $ES_NOHIDESEL))
GUISetState(@SW_SHOW)
#endregion

Sleep(1000)

; => Liest eure Hardware-ID aus (Include von GetHWID.au3 erforderlich)

$log = "Your HWID is " & _GetHWID() & @CRLF & $log
GUICtrlSetData($labellog, $log)
sleep(3000)


; => Hier wird eure Hardware-ID mittels eines Dokuments, welches auf einem Webserver befindet, ausgelesen
; => Natürlich ist diese erstmals festzulegen.

$log = "Checking your Hardware-ID for using this Programm..." & @CRLF & $log
GUICtrlSetData($labellog, $log)
Sleep(1000)
$datei = BinaryToString(InetRead("http://deindomain.de/TextDokument.txt")) ; Hier die Webadresse für die .txt reinschreiben! Achtung! Nur .txt erlaubt!
$suche = _GetHWID() ;nach was gesucht werden soll

; => Hier wird nun komplett ausgelesen, ob eure HWID in der Dokument befindet und gibt jeweils eine Nachricht aus

If StringInStr($datei, $suche) Then
	sleep(0)
	$log = "Successfully connected" & @CRLF & $log
	sleep(1000)
	GUICtrlSetData($labellog, $log)
	Sleep(2500)
Else
	$log = "You do not have Permissions to use this Programm." & @CRLF & $log
	GUICtrlSetData($labellog, $log)
	sleep(2000)
	Exit
EndIf

GUISetState(@SW_HIDE, $startlog)
Diese muss so gut wie oben sein (nach den Includes), damit das ganze als erstens "aktiviert" bzw. aufgerufen wird.
12/09/2013 15:43 Rorc#2
Da du gerade das Thema Sicherheit ansprichst:
AutoIt != Sicher.
Selbst als mehr oder weniger Anfänger-Scripter kann man sogut wie jedes AutoIt Script auseinander nehmen, und wieder so zusammenbasteln wie man mag.

Nur mit vielem Effizienz-verminderndem Packen etc. ist dies zu verhindern, und in der Zeit wo man diese Umwege macht lernt man lieber eine nativ-Sprache.



Zu deinem Code-Snippet möchte ich dir noch einen Tipp geben.
Versuche nach Möglichkeit, dich auf Funktionalitäten zu beschränken.
Damit meine ich zum Beispiel, dass für eine Demonstration einer Funktion das ganze $log Zeugs komplett obsolet ist, und die Sache nur unnötig komplizierter für Neulinge zum Nachschlagen macht.

Am besten beschränkst du dich bei so einem Snippet wirklich nur auf die Kernfunktion, welche du presentieren willst, und beschreibst diese jedoch möglichst genau mit Kommentaren.



Nur meine kleine, unbedeutende Meinung :p