Da es manchmal Abweichungen der HWIDs des Scripts und der .dll gab habe ich die _MD5() Funktion entsprechend angepasst. Beide HWIDs sollten nun gleich sein.
Ich habe die UDF um eine Funktion erweitert: _GetHWIDData()
Diese Funktion gibt die Benutzerdaten in einem Array zurück. Falls ihr die HWID zu einem früheren Zeitpunkt generiert habt, könnt ihr diese als optionalen Parameter angeben. Andernfalls wird sie neu generiert.
Ich hab ein paar Änderungen an der _GetHWIDData() Funktion vorgenommen. Falls es neue Einträge geben sollte (z. B. <usergroupX> um alle Benutzergruppen), oder sich die Anordnung ändern, hat die Funktion damit keine Probleme.
Code:
$Array[0][0] = Number of information returned
$Array[0][1] = Hardware ID
$Array[1][0] = 1st info
$Array[1][1] = 1st info value
$Array[2][0] = 2nd info
$Array[2][1] = 2nd info value
...
$Array[n][0] = nth info
$Array[n][1] = nth info value
Ich hab schon viele Leute gesehen, die ein HWID System haben, wo die Leute erst mit dem HWID Code freigeschaltet werden muss, damit er Zugang zu eine Datei hat o.ä.
Könnte ich fragen wie das Funktioniert ?
#include <EPVP_HWID.au3>
GUICreate("Test", 200, 200) ;GUI erstellen
$B_Exit = GUICtrlCreateButton("Beenden", 0, 0, 200, 200)
$Data = _GetHWIDData()
If IsArray($Data) Then
;evtl. Thanks, Beiträge oder sonstiges überprüfen
;If BedingungErfuellt Then
GUISetState() ;GUI anzeigen
;Else Fehlermeldung + Exit
;...
Do
$Msg = GUIGetMsg()
Sleep(25)
Until $Msg == -3 Or $Msg == $B_Exit
Else
MsgBox(48, "Fehler", "Du hast keine HWID angegeben!")
EndIf
Ich würde es allgemein nicht so machen, da es so einfach wäre den Check zu entfernen. Da das mit AutoIt allgemein sehr einfach ist, ist es auch wieder egal.
Hallo KDeluxe!
Ich habe mir mal erlaubt, dein Script zu verbessern, ich hoffe das ist ok
Und zwar habe ich Inetread mit Funktionen aus der WinHttp.au3 ersetz - es ist jetzt ca. 10x schneller im Laden der HWID-Daten
Code:
#include-once
#include <Winhttp.au3>
;=================================================================================================
; Function: _GetHWIDData($HWID = 0)
; Description: Checks the HWID and returns an array containing the user related informations
; Return Value(s): On Success - Returns an array containing the user related informations.
; On Failure - Returns false
; @Error - 1 = Failed to get the HWID.
; 2 = Failed to connect to the internet.
; 3 = Failed to categorize the information.
; Author(s): KillerDeluxe
; Modified : Achat
; Remark(s): The array returned is made up as follows:
; $Array[0] = userid
; $Array[1] = username
; $Array[2] = joindate
; $Array[3] = posts
; $Array[4] = thanks
; $Array[5] = usergroup
;=================================================================================================
Func _GetHWIDData($HWID = 0)
Local $ReturnData[6], $URL = "api/hwid.php?hash="
If $HWID == 0 Then
$HWID = _GetHWID()
If @error Then Return SetError(1, "", False)
EndIf
#region Speed improvements by Achat (www.elitepvpers.com)
$hSession=_WinHttpOpen()
$hConnect=_WinHttpConnect($hSession,'www.elitepvpers.com')
$Source=_WinHttpSimpleRequest($hConnect,'GET',$URL&$HWID)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
#endregion
If @error Then Return SetError(2, "", False)
$Info = StringRegExp($Source, "<.*?>(.*?)</.*?>", 3)
If @error Then Return SetError(3, "", False)
For $i = 0 To 5
$ReturnData[$i] = $Info[$i]
Next
Return $ReturnData
EndFunc
Hallo KDeluxe!
Ich habe mir mal erlaubt, dein Script zu verbessern, ich hoffe das ist ok
Und zwar habe ich Inetread mit Funktionen aus der WinHttp.au3 ersetz - es ist jetzt ca. 10x schneller im Laden der HWID-Daten
Code:
#include-once
#include <Winhttp.au3>
;=================================================================================================
; Function: _GetHWIDData($HWID = 0)
; Description: Checks the HWID and returns an array containing the user related informations
; Return Value(s): On Success - Returns an array containing the user related informations.
; On Failure - Returns false
; @Error - 1 = Failed to get the HWID.
; 2 = Failed to connect to the internet.
; 3 = Failed to categorize the information.
; Author(s): KillerDeluxe
; Modified : Achat
; Remark(s): The array returned is made up as follows:
; $Array[0] = userid
; $Array[1] = username
; $Array[2] = joindate
; $Array[3] = posts
; $Array[4] = thanks
; $Array[5] = usergroup
;=================================================================================================
Func _GetHWIDData($HWID = 0)
Local $ReturnData[6], $URL = "api/hwid.php?hash="
If $HWID == 0 Then
$HWID = _GetHWID()
If @error Then Return SetError(1, "", False)
EndIf
#region Speed improvements by Achat (www.elitepvpers.com)
$hSession=_WinHttpOpen()
$hConnect=_WinHttpConnect($hSession,'www.elitepvpers.com')
$Source=_WinHttpSimpleRequest($hConnect,'GET',$URL&$HWID)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hSession)
#endregion
If @error Then Return SetError(2, "", False)
$Info = StringRegExp($Source, "<.*?>(.*?)</.*?>", 3)
If @error Then Return SetError(3, "", False)
For $i = 0 To 5
$ReturnData[$i] = $Info[$i]
Next
Return $ReturnData
EndFunc
Der Code der gelesen wird ist 8 Zeilen lang da ist das scheiß egal
jetzt frag mal bei 100 HWIDs die Infos ab - dann hast du mit WinHttp schon einen sehr großen Geschwindigkeitsvorteil
Man sollte Programme immer so schreiben, dass sie Ressourcen sparen und schnell sind.
jetzt frag mal bei 100 HWIDs die Infos ab - dann hast du mit WinHttp schon einen sehr großen Geschwindigkeitsvorteil
Man sollte Programme immer so schreiben, dass sie Ressourcen sparen und schnell sind.
Bei grob überschlagen 250 Byte gibt es kaum eine Differenzen. Wirklich viel bringt die Änderung nicht, jedenfalls nicht die 10fache Geschwindigkeit.
Ich habe gezielt möglichst viele AutoIt Funktionen benutzt um keine Abhängigkeiten von anderen UDFs zu schaffen. Deshalb habe ich auch eine "eigene" MD5 UDF geschrieben und nicht die aus der Crypt.au3 verwendet. Außerdem möchte ich den Code so simpel wie möglich halten, damit ihn auch Anfänger (halbwegs) nachvollziehen können.
HWID System für Entwickler 06/04/2012 - e*pvp News - DE - 228 Replies Einigen ist es sicher schon aufgefallen - auf dem Profil gibt es ein neues Feld mit der Beschriftung "Hardware ID". Hier möchte ich euch mal aufklären, was das Ganze auf sich hat und wie und wofür man das System verwenden kann.
Bei dem HWID-System handelt es sich um ein e*pvp internes System, mit dem Entwickler ihre Tools so programmieren können, dass sie nur dann ihren Dienst tun, wenn der PC, auf dem das Tool verwendet werden soll, durch seine HWID (=Hardware-ID) mit einem e*pvp Account...
Elitepvpers Star System 08/10/2011 - Grand Chase Philippines - 17 Replies To those who dont know what is the star system for, kindly refer to admin S.A.L.O.M.O.N's thread
link: Star Sytem Explanation
HWID Generator & Dev-Tools für e*pvp's HWID System 01/28/2011 - Main - 0 Replies Hier die Downloads passend zum News-Thread, da das Attachen von Daten an News-Threads nicht möglich ist ;)
News-Thread:
http://www.elitepvpers.com/forum/e-pvp-news-de/981 343-hwid-system-f-r-entwickler.html
Credits für den 2. Generator gehen an Anfang!
Lg,
Ende!