Das hat leider nicht geklappt.
Es geht hierbei um ein Lizenzsystem, das ich auf youtube gefunden habe. Ich weiß, dass das bei Autoit Programmen generell keinen Sinn macht, aber wollte es einfach mal ausprobieren. (Code steht unten)
Ich habe grade einfach Lust etwas coden zu lernen. Daher habe ich einfach mehrere Projekte von einem Youtube Channel versucht nachzuvollziehen und in was Eigenes zu implementieren.
Wenn imagesearch bei euch gegen die Forenregel verstößt dann stelle ich keine Fragen mehr dazu Habe das Problem mittlerweile auch schon gelöst bekommen durch For und IF's mit denen ich vorher noch Probleme hatte -> Wieder was dazugelernt
Mein nächstes Ziel ist das Programm zu kompilieren ohne, dass Avira da meckert. (virustotal.com schlägt nämlich keinen Alarm)
#include <winhttp.au3>
#include <Array.au3>
$sMail = "Email@web.de"
$sNAme = _Lizenz_Abfrage('Test')
Func _Lizenz_Abfrage($sProdukt)
ToolTip("Überprüft Lizenz...", @DesktopWidth / 2, @DesktopHeight / 2)
$sHash = _GetHWID()
$se_open = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.18) Gecko/20110319 Firefox/3.5.18 ( .NET CLR 3.5.30729; .NET4.0E)")
$se_connect = _WinHttpConnect($se_open, "www.dropbox.com")
$se_html = _WinHttpSimpleSSLRequest($se_connect, "GET", '/s/2gcgh44f1egn496/whitelist.txt?dl=1');
;MsgBox(0, "", $se_html)
_WinHttpCloseHandle($se_connect)
_WinHttpCloseHandle($se_open)
ToolTip("")
$aDaten = StringRegExp($se_html, '\[(.+?)\]', 3)
;_ArrayDisplay($aDaten)
$sFehler = "Du bist für kein Produkt Regestriert mit der HardwareID:" & @CRLF & $sHash
For $i = 0 To UBound($aDaten) - 1 Step 4
If $aDaten[$i + 1] <> $sHash Then ContinueLoop
$sFehler = "Du bist für dieses Produkt nicht Regestriert."
If $aDaten[$i] <> $sProdukt Then ContinueLoop
$sFehler = "Deine Lizenz ist abgelaufen, sie ging nur bis zum:" & @CRLF & $aDaten[$i + 3]
$aDatum = StringSplit($aDaten[$i + 3], ".")
If @error Then Return $aDaten[$i+2]
If $aDatum[1] < @YEAR Then ContinueLoop
If $aDatum[2] < @MON Then ContinueLoop
If $aDatum[3] < @MDAY Then ContinueLoop
Return $aDaten[$i+2]
Next
ClipPut($sHash)
MsgBox(0,"Fehler", $sFehler & @CRLF & "Deine HardwareID ist im Zwischenspeicher, um eine Gültige Lizenz zu erwerben gebe diese bitte weiter an:" & @CRLF & $sMail)
Exit
EndFunc ;==>_Lizenz_Abfrage
;~ HHDID, NAME, Datum, Produk,
Func _Check_Serial($sProgramm)
$sHash = _GetHWID()
ToolTip("Überprüft Status...")
$se_open = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.18) Gecko/20110319 Firefox/3.5.18 ( .NET CLR 3.5.30729; .NET4.0E)")
$se_connect = _WinHttpConnect($se_open, "www.dropbox.com")
$se_html = _WinHttpSimpleSSLRequest($se_connect, "GET", '/s/2gcgh44f1egn496/whitelist.txt?dl=1')
_WinHttpCloseHandle($se_connect)
_WinHttpCloseHandle($se_open)
ToolTip("")
If StringInStr($se_html, $sHash & "][" & $sProgramm) <> 0 Then
Return True
Else
ClipPut($sHash)
MsgBox(64, "Error", "Du bist noch nicht Registriert, sende folgenden Code an jamesmor@web.de:" & @CRLF & @CRLF & $sHash & @CRLF & @CRLF & "Er wurde in die Zwischenablage gespeichert!")
Exit
EndIf
EndFunc ;==>_Check_Serial
Func _MD5($Data)
$hProv = DllStructCreate("ULONG_PTR")
$hHash = DllStructCreate("ULONG_PTR")
$cbHash = DllStructCreate("ULONG_PTR")
DllStructSetData($cbHash, 1, 16)
$Hash = DllStructCreate("BYTE[" & StringLen($Data) + 1 & "]")
DllStructSetData($Hash, 1, $Data)
$digit = DllStructCreate("char[16]")
DllStructSetData($digit, 1, "0123456789abcdef")
$fHash = DllStructCreate("char[32]")
$Advapi32 = DllOpen("Advapi32.dll")
If @error Then Return SetError(1, "", False)
DllCall($Advapi32, "BOOL", "CryptAcquireContextA", "ptr", DllStructGetPtr($hProv), "int", 0, "int", 0, "DWORD", 1, "DWORD", 0xF0000000)
If @error Then Return SetError(2, "", False)
DllCall($Advapi32, "BOOL", "CryptCreateHash", "ULONG_PTR", DllStructGetData($hProv, 1), "UINT", BitOR(BitShift(4, -13), 3), "int", 0, "int", 0, "ptr", DllStructGetPtr($hHash))
If @error Then Return SetError(3, "", False)
DllCall($Advapi32, "BOOL", "CryptHashData", "ULONG_PTR", DllStructGetData($hHash, 1), "ptr", DllStructGetPtr($Hash), "DWORD", StringLen($Data), "int", 0)
If @error Then Return SetError(4, "", False)
$Hash = DllStructCreate("BYTE[16]")
DllCall($Advapi32, "BOOL", "CryptGetHashParam", "ULONG_PTR", DllStructGetData($hHash, 1), "DWORD", 2, "ptr", DllStructGetPtr($Hash), "DWORD*", DllStructGetPtr($cbHash), "int", 0)
If @error Then Return SetError(5, "", False)
$l = 1
For $i = 1 To DllStructGetData($cbHash, 1)
DllStructSetData($fHash, 1, DllStructGetData($digit, 1, BitShift(DllStructGetData($Hash, 1, $i), 4) + 1), $l)
$l += 1
DllStructSetData($fHash, 1, DllStructGetData($digit, 1, BitAND(DllStructGetData($Hash, 1, $i), 0xF) + 1), $l)
$l += 1
Next
DllCall($Advapi32, "BOOL", "CryptDestroyHash", "ULONG_PTR", DllStructGetData($hHash, 1))
DllCall($Advapi32, "BOOL", "CryptReleaseContext", "ULONG_PTR", DllStructGetData($hProv, 1), "int", 0)
DllStructSetData($fHash, 1, 0, 33)
Return DllStructGetData($fHash, 1)
EndFunc ;==>_MD5
;=================================================================================================
; Function: _GetHWID()
; Description: Returns the MD5 hashed HWID.
; Return Value(s): On Success - Returns the MD5 hashed HWID.
; On Failure - Returns false
; @Error - 1 = Failed to get 'HwProfileGuid'.
; 2 = Failed to get the drive serial.
; 3 = Failed to hash the data.
; Author(s): KDeluxe
;=================================================================================================
Func _GetHWID()
Local $HW_PROFILE_INFO = DllStructCreate("dword;char[39];char[80]")
DllCall("Advapi32.dll", "int", "GetCurrentHwProfileA", "ptr", DllStructGetPtr($HW_PROFILE_INFO))
If @error Then Return SetError(1, "", False)
$GUID = DllStructGetData($HW_PROFILE_INFO, 2)
$dwHDDSerial = DriveGetSerial(@HomeDrive)
If @error Then Return SetError(2, "", False)
$szReturnData = StringLower(_MD5(DllStructGetData($HW_PROFILE_INFO, 2) & $dwHDDSerial & _Get_Produktions_Key() & @ComputerName))
If @error Then Return SetError(3, "", False)
Return $szReturnData
EndFunc ;==>_GetHWID
Func _Get_Produktions_Key()
FileWrite(@TempDir & "\vbstemp.vbs", 'On Error Resume Next' & _
@CRLF & 'Set Fso = CreateObject("Scripting.FileSystemObject")' & _
@CRLF & 'Set SNSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")' & _
@CRLF & 'Set fs = CreateObject("Scripting.FileSystemObject")' & @CRLF & _
@CRLF & 'Set a = fs.CreateTextFile("tempvbs.tmp", True)' & _
@CRLF & 'for each SN in SNSet' & @CRLF & _
'a.WriteLine (SN.SerialNumber)' & @CRLF & 'next' & _
@CRLF & 'a.Close')
RunWait("wscript.exe " & @TempDir & "\vbstemp.vbs", @TempDir)
$SN = FileReadLine(@TempDir & "\tempvbs.tmp", 1)
FileDelete(@TempDir & "\tempvbs.tmp")
FileDelete(@TempDir & "\vbstemp.vbs")
EndFunc ;==>_Get_Produktions_Key
Alles anzeigen