Autoit Lizenzsystem mit Dropbox (kostenlos)

  • Ein Tut wie ihr ganz einfach euer eigenes Kostenloses Lizenzsystem macht.
    Hallo in diesem Video Tut zeige ich euch wie ihr ein Lizenzsystem für eure Programme erstellt.

    Video:
    Alte Videos

    anfänglicher Update Funktion)


    Spoiler anzeigen

    AutoIt Quelltext

    1. #include-once
    2. #include <winhttp.au3>
    3. ;~ _Check_Serial("Lizenz")
    4. Func _Check_Serial($sProgramm)
    5. $sHash = _GetHWID()
    6. ToolTip("Überprüft Status...")
    7. $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)")
    8. $se_connect = _WinHttpConnect($se_open, "www.dropbox.com")
    9. $se_html = _WinHttpSimpleSSLRequest($se_connect, "GET", '/################/Whitelist.txt?dl=1'); Euer Link
    10. _WinHttpCloseHandle($se_connect)
    11. _WinHttpCloseHandle($se_open)
    12. ToolTip("")
    13. If StringInStr($se_html, $sHash & "][" & $sProgramm) <> 0 Then
    14. Return True
    15. Else
    16. ClipPut($sHash)
    17. MsgBox(64, "Error", "Du bist noch nicht Registriert, sende folgenden Code an ##################:" & @CRLF & @CRLF & $sHash & @CRLF & @CRLF & "Er wurde in die Zwischenablage gespeichert!"); eure Email, Whatsapp, Skype, Was auch immer
    18. Exit
    19. EndIf
    20. EndFunc ;==>_Check_Serial
    21. Func _MD5($Data)
    22. $hProv = DllStructCreate("ULONG_PTR")
    23. $hHash = DllStructCreate("ULONG_PTR")
    24. $cbHash = DllStructCreate("ULONG_PTR")
    25. DllStructSetData($cbHash, 1, 16)
    26. $Hash = DllStructCreate("BYTE[" & StringLen($Data) + 1 & "]")
    27. DllStructSetData($Hash, 1, $Data)
    28. $digit = DllStructCreate("char[16]")
    29. DllStructSetData($digit, 1, "0123456789abcdef")
    30. $fHash = DllStructCreate("char[32]")
    31. $Advapi32 = DllOpen("Advapi32.dll")
    32. If @error Then Return SetError(1, "", False)
    33. DllCall($Advapi32, "BOOL", "CryptAcquireContextA", "ptr", DllStructGetPtr($hProv), "int", 0, "int", 0, "DWORD", 1, "DWORD", 0xF0000000)
    34. If @error Then Return SetError(2, "", False)
    35. DllCall($Advapi32, "BOOL", "CryptCreateHash", "ULONG_PTR", DllStructGetData($hProv, 1), "UINT", BitOR(BitShift(4, -13), 3), "int", 0, "int", 0, "ptr", DllStructGetPtr($hHash))
    36. If @error Then Return SetError(3, "", False)
    37. DllCall($Advapi32, "BOOL", "CryptHashData", "ULONG_PTR", DllStructGetData($hHash, 1), "ptr", DllStructGetPtr($Hash), "DWORD", StringLen($Data), "int", 0)
    38. If @error Then Return SetError(4, "", False)
    39. $Hash = DllStructCreate("BYTE[16]")
    40. DllCall($Advapi32, "BOOL", "CryptGetHashParam", "ULONG_PTR", DllStructGetData($hHash, 1), "DWORD", 2, "ptr", DllStructGetPtr($Hash), "DWORD*", DllStructGetPtr($cbHash), "int", 0)
    41. If @error Then Return SetError(5, "", False)
    42. $l = 1
    43. For $i = 1 To DllStructGetData($cbHash, 1)
    44. DllStructSetData($fHash, 1, DllStructGetData($digit, 1, BitShift(DllStructGetData($Hash, 1, $i), 4) + 1), $l)
    45. $l += 1
    46. DllStructSetData($fHash, 1, DllStructGetData($digit, 1, BitAND(DllStructGetData($Hash, 1, $i), 0xF) + 1), $l)
    47. $l += 1
    48. Next
    49. DllCall($Advapi32, "BOOL", "CryptDestroyHash", "ULONG_PTR", DllStructGetData($hHash, 1))
    50. DllCall($Advapi32, "BOOL", "CryptReleaseContext", "ULONG_PTR", DllStructGetData($hProv, 1), "int", 0)
    51. DllStructSetData($fHash, 1, 0, 33)
    52. Return DllStructGetData($fHash, 1)
    53. EndFunc ;==>_MD5
    54. ;=================================================================================================
    55. ; Function: _GetHWID()
    56. ; Description: Returns the MD5 hashed HWID.
    57. ; Return Value(s): On Success - Returns the MD5 hashed HWID.
    58. ; On Failure - Returns false
    59. ; @Error - 1 = Failed to get 'HwProfileGuid'.
    60. ; 2 = Failed to get the drive serial.
    61. ; 3 = Failed to hash the data.
    62. ; Author(s): KDeluxe
    63. ;=================================================================================================
    64. Func _GetHWID()
    65. Local $HW_PROFILE_INFO = DllStructCreate("dword;char[39];char[80]")
    66. DllCall("Advapi32.dll", "int", "GetCurrentHwProfileA", "ptr", DllStructGetPtr($HW_PROFILE_INFO))
    67. If @error Then Return SetError(1, "", False)
    68. $GUID = DllStructGetData($HW_PROFILE_INFO, 2)
    69. $dwHDDSerial = DriveGetSerial(@HomeDrive)
    70. If @error Then Return SetError(2, "", False)
    71. $szReturnData = StringLower(_MD5(DllStructGetData($HW_PROFILE_INFO, 2) & $dwHDDSerial & _Get_Produktions_Key() & @ComputerName))
    72. If @error Then Return SetError(3, "", False)
    73. Return $szReturnData
    74. EndFunc ;==>_GetHWID
    75. Func _Get_Produktions_Key()
    76. FileWrite(@TempDir & "\vbstemp.vbs", 'On Error Resume Next' & _
    77. @CRLF & 'Set Fso = CreateObject("Scripting.FileSystemObject")' & _
    78. @CRLF & 'Set SNSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")' & _
    79. @CRLF & 'Set fs = CreateObject("Scripting.FileSystemObject")' & @CRLF & _
    80. @CRLF & 'Set a = fs.CreateTextFile("tempvbs.tmp", True)' & _
    81. @CRLF & 'for each SN in SNSet' & @CRLF & _
    82. 'a.WriteLine (SN.SerialNumber)' & @CRLF & 'next' & _
    83. @CRLF & 'a.Close')
    84. RunWait("wscript.exe " & @TempDir & "\vbstemp.vbs", @TempDir)
    85. $SN = FileReadLine(@TempDir & "\tempvbs.tmp", 1)
    86. FileDelete(@TempDir & "\tempvbs.tmp")
    87. FileDelete(@TempDir & "\vbstemp.vbs")
    88. EndFunc ;==>_Get_Produktions_Key


    AutoIt Quelltext

    1. #include 'susesKaninchenLizenz-UDF.au3'
    2. _Check_Serial("TestBot")
    3. MsgBox(0,"","")


    [DATUM][KEY][Product][NAMEN-Bemerkung]
    [22:21 08.09.2013][abed4ad4e126c3480261e98b59fdba37][TestBot][Marco ICH]

    13.471 mal gelesen

Kommentare 6

  • Benutzer-Avatarbild

    iCryptonic -

    Also es schreibt etwas in die Datei vbsstempel und daran kann er es dann erkennen oder bin ich vollkommen doof?

    • Benutzer-Avatarbild

      susesKaninchen -

      er schriebt da was rein und führt es aus, ja, aber das ist nur ein kleiner teiel. Danach löscht er es wieder, in zeile 86 macht er einen MD5 String draus

  • Benutzer-Avatarbild

    Chaya_ -

    Ohne dass man Dropbox nutzt konnte ich es ! Noch ! nicht erfolgreich testen !

  • Benutzer-Avatarbild

    susesKaninchen -

    Also sicher ist nichts 100%, aber gegen unwissende allemahl. Und Dropbox sperrt das nicht, auch nicht bei 999999 Downloads

  • Benutzer-Avatarbild

    Johnny1231 -

    Find ich eine sehr praktische Idee. Ist sicherlich nicht das sicherste lizenzsystem aber für kleinere projekte durchaus sinnvoll!

  • Benutzer-Avatarbild

    Trojan -

    Sieht gut aus. Nur sperrt Dropbox nicht irgendwann Dateien die zu oft runtergeladen wurden? ,