Validación de licencias (Función PHP)
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: Validación de licencias (Función PHP)
exacto, ahi esta el problema, siempr me dice que la licencia es válida ..
Al utilizar la funcion php funciona, por eso queria pasarla a autoit
Un saludo y gracias.
Al utilizar la funcion php funciona, por eso queria pasarla a autoit
Un saludo y gracias.
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: Validación de licencias (Función PHP)
ueno, haber, trate de traducir la funcion php a au3, lo vas a probar y darme el visto bueno, o malo pork acordate k no tengo una cuentta en nod paara hacer pruebas, asik no sabre lo que devuelve asta k me digas..
En teoria es tu codigo php.. Probe con una cuetna k encontre por alli pEro parece k no funciona o expiro...
Ok. decime k onda.. que si fucniona me trae un par de ideilla sin contar k la funcion base64_encode es propia de php asik imaginate :O
Saludos.
P/D: Adaptalo segun sea la version del nod.. yo solo trankribi el primero..
Aca el code:
En teoria es tu codigo php.. Probe con una cuetna k encontre por alli pEro parece k no funciona o expiro...
Ok. decime k onda.. que si fucniona me trae un par de ideilla sin contar k la funcion base64_encode es propia de php asik imaginate :O
Saludos.
P/D: Adaptalo segun sea la version del nod.. yo solo trankribi el primero..
Aca el code:
Código: Seleccionar todo
MIRAR EL DE ABAJOOO PROXIMOS DOS POST :smt023 EndFunc
Última edición por gna08 el 24 Nov 2009, 21:24, editado 1 vez en total.
Aunk no m Buskes, Seguro m enkontras!
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: Validación de licencias (Función PHP)
gracias por tu ayuda, mañana sim falta lo pruebo y te cuento.
Si ecesitas un user y pas para pruebas dejo esta url que siempre muestra uno válido (yo mismo me encague de ello)
http://Www.arkcrew.com/code.php?p=user&decod=1
Si ecesitas un user y pas para pruebas dejo esta url que siempre muestra uno válido (yo mismo me encague de ello)
http://Www.arkcrew.com/code.php?p=user&decod=1
Re: Validación de licencias (Función PHP)
Ok. acabo de probar.. lo k debuelve si es correcto es bynario... asik solo prueba esto que acabo de modificarlo... y me decis.. probe poniendo esas claves k me dijiste y me dice true--- pongo otra y me sale error :O
Creo que funciona, el anterior nooo!!.. pero vos corrobora.. nos vemos .
Creo que funciona, el anterior nooo!!.. pero vos corrobora.. nos vemos .
Código: Seleccionar todo
MsgBox(64, "", checkData("EAV-24227182", "vuv67s3a6x"))
func checkData($user, $pass)
Local $nodv
Local $nodt
TCPStartup()
$hosteset = "u24.eset.com"
$socketnod = TCPConnect(TCPNameToIP($hosteset), 80)
$headerpath = "/download/engine3/em000_32_l0.nup"; //Si no se especificó un tipo de versión, este será el preterminado
if $user = "" Or $pass = "" Then return FALSE; //Si no nos mandaron un usuario o una contraseña, los datos son inválidos
if $nodt = "ess" Then ; //Para Eset Smart Security
$headerpath = "/download/engine3ess/em010_32_n1.nup";
elseif $nodt = "essbe" Then; //Para Eset Smart Security Business
$headerpath = "/download/engine3ess/em010_32_n1.nup";
elseif StringInStr('^2\..*',$nodv) Then; //Para cualquiera de las versiones 2.x
;~ $headerpath = "/download/engine/charon1.nup";
EndIf
_Base64Encode("");
$header = "GET " & $headerpath & " HTTP/1.1" & @crlf & _
"Host: " & $hosteset & @crlf & _
"Connection: " & "Close" & @crlf & _
"Authorization: " & "Basic " & _Base64Encode($user & ":" & $pass) & @crlf & @crlf
if ($socketnod) Then
$s = TCPSend($socketnod,$header); //Mandamos el header
while 1
$datonod = TCPRecv($socketnod, 4096); //Leemos los datos que entran
If $datonod <> "" Then
$header2 = StringReplace(StringReplace($datonod,chr(10), ""),chr(13), "");
if (StringInStr('HTTP/1.1 200 OK',$header2)) Then ; //Si todo fue bien (HTTP/x.x 200 OK)
TCPCloseSocket($socketnod); //Cerramos el socket
TCPShutdown()
return TRUE ; //Retornamos TRUE que indica que el usuario y password a revisar, son correctos y sirven
else ; //Cualquier otro header (que por lo general es: HTTP/1.1 401 Authorization Required) indica error y la licencia no es válida
If IsBinary($datonod) Then
TCPCloseSocket($socketnod); //Cerramos el socket
TCPShutdown()
Return True
Else
TCPCloseSocket($socketnod); //Cerramos el socket
TCPShutdown()
return FALSE
EndIf
EndIf
EndIf
WEnd
EndIf
TCPShutdown()
return FALSE
EndFunc
Func _Base64Encode($Data)
Local $Base64EncOpcode = "0x5589E5FF7510535657EB1A8B5D088B7DFC8B4D0CE81F000000834508038345FC04836D0C03837D0C007FE08B75FCC606005F5E5BC9C21000E8410000004142434445464748494A4B4C4D4E4F505152535455565758595A6162636465666768696A6B6C6D6E6F707172737475767778797A303132333435363738392B2F005A0FB633C1EE0201D68A06880731C083F901760C0FB6430125F0000000C1E8040FB63383E603C1E60409C601D68A0688470183F90176210FB6430225C0000000C1E8060FB6730183E60FC1E60209C601D68A06884702EB04C647023D83F90276100FB6730283E63F01D68A06884703EB04C647033DC3"
Local $Ret
Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Base64EncOpcode) & "]")
If @error Or $CodeBuffer = 0 Then Return SetError(1, 0, -1)
DllStructSetData($CodeBuffer, 1, $Base64EncOpcode)
If @error Then Return SetError(2, 0, -1)
Local $Input = DllStructCreate("byte[" & BinaryLen($Data) & "]")
If @error Or $Input = 0 Then Return SetError(3, 0, -1)
DllStructSetData($Input, 1, $Data)
If @error Then Return SetError(4, 0, -1)
Local $Output = DllStructCreate("char[" & Int(BinaryLen($Data) * 4 / 3) + 4 & "]")
If @error Or $Output = 0 Then Return SetError(5, 0, -1)
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), "ptr", DllStructGetPtr($Input), _
"int", BinaryLen($Data), "ptr", DllStructGetPtr($Output), "int", 0)
If @error Then Return SetError(6, 0, -1)
$Ret = DllStructGetData($Output, 1)
$Input = 0
$Output = 0
$CodeBuffer = 0
Return $Ret
EndFunc
Aunk no m Buskes, Seguro m enkontras!
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: Validación de licencias (Función PHP)
gracias por toda tu colaboracion e interes, da gusto colaborar con gente asi. Lo dicho, mañana lo pruebo y te digo...
Un saludo
Un saludo
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
- arkcrew
- Profesional del Autoit
- Mensajes: 506
- Registrado: 28 Sep 2009, 19:17
- Ubicación: Granada, España
- Contactar:
Re: Validación de licencias (Función PHP)
Gracias por todo, funcionma de lujo, un saludo!!
ArkCrew
http://www.nodluna.blogspot.com
http://www.nodluna.blogspot.com
Re: Validación de licencias (Función PHP)
De nada. para eso estamos..
saludos..
saludos..
Aunk no m Buskes, Seguro m enkontras!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Validación de licencias (Función PHP)
Mmmmmm.....nadie me ha hecho caso y ha puesto en práctica lo que yo he dicho .
Os pongo lo que sería más o menos la función con las cosas que se han puesto aquí y lo que yo dije:
Más facil y menos código no? .
He añadido lo del registro que pusiste para dar el valor a la variable $nodt. Falta saber que debe contener la variable $nodv que no lo has puesto, y debe ser importante ya que indica la posible entrada en la condición.
He unido todas las condiciones en una, ya que si se cumplía cualquiera de ellas devolvían el mismo valor.
Saludos.
Os pongo lo que sería más o menos la función con las cosas que se han puesto aquí y lo que yo dije:
Código: Seleccionar todo
MsgBox(64, "", _checkuser("EAV-24227182", "vuv67s3a6x"))
Func _checkuser($user , $pass)
if $user = "" Or $pass = "" then return 0
Local $hosteset = "89.202.157.226";"u24.eset.com"
Local $nodv
Local $nodt = RegRead("HKLM64\Software\ESET\ESET Security\CurrentVersion\Info" , "ProductTipe")
if $nodt == "ess" Or $nodt == "essbe" Or StringInStr('^2\..*',$nodv) then
$nomFile="em010_32_n1.nup"
$headerpath = "/download/engine3ess/"
Else
$nomFile="em000_32_l0.nup"
$headerpath = "/download/engine3/"
EndIf
$linkCompleto="http://" & $user & ":" & $pass & "@" & $hosteset & $headerpath & $nomFile
If InetGetSize($linkCompleto) Then
$n=InetGet($linkCompleto,@TempDir&"\"& $nomFile,1)
Return 1
Else
Return 0
EndIf
EndFunc
He añadido lo del registro que pusiste para dar el valor a la variable $nodt. Falta saber que debe contener la variable $nodv que no lo has puesto, y debe ser importante ya que indica la posible entrada en la condición.
He unido todas las condiciones en una, ya que si se cumplía cualquiera de ellas devolvían el mismo valor.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Validación de licencias (Función PHP)
Pues sii tambien funciona.. :O pero el keria trankribirla jaja
Saludos
Saludos
Aunk no m Buskes, Seguro m enkontras!