elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ParseKeys (REG EXP) limpiar claves del NOD32
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ParseKeys (REG EXP) limpiar claves del NOD32  (Leído 2,451 veces)
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
ParseKeys (REG EXP) limpiar claves del NOD32
« en: 23 Mayo 2012, 04:08 am »

Metele el html raw de casi cuaaaalquier sitio de licencias y esto las limpia ;)

Código
  1. Option Explicit
  2. '=================================================
  3. ' º Nombre    : mParseKeys.bas
  4. ' º Version   : 2.0
  5. ' º Autor     : Milton Candelero
  6. ' º Alias     : ElementalCode
  7. ' º Pais      : Argentina
  8. ' º Fecha     : 13/OCT/2011
  9. ' º Dedicado a: El amor de mi vida
  10. ' º Licencia  : GNU PUBLIC LICENCE v.3 (Or higher)
  11. '=================================================
  12. '    This file is part of Open Nod32 Keyfinder.
  13. '
  14. '    Open Nod32 Keyfinder is free software: you can redistribute it and/or modify
  15. '    it under the terms of the GNU General Public License as published by
  16. '    the Free Software Foundation, either version 3 of the License, or any later version.
  17. '
  18. '    Open Nod32 Keyfinder is distributed in the hope that it will be useful,
  19. '    but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. '    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. '    GNU General Public License for more details.
  22. '
  23. '    You should have received a copy of the GNU General Public License
  24. '    along with Open Nod32 Keyfinder.  If not, see <http://www.gnu.org/licenses/>.
  25.  
  26. Function ParseKeys(ByVal sHTML As String, ByRef sUser() As String, ByRef sPass() As String)
  27.    'Constantes para los patterns de busqueda
  28.    Const USERPATTERN As String = "(?:EAV|TRIAL|ESS)-\d{8}"
  29.    Const PASSPATTERN As String = "(?:[pP]?assword:? |[pP]?assword:?|nod32key:)(\w{10})"
  30.    'Declarar variables para RegExp
  31.    Dim oREuser As RegExp
  32.    Dim oREpass As RegExp
  33.    'Variables para las colecciones de resultados
  34.    Dim oMCuser As MatchCollection
  35.    Dim oMCpass As MatchCollection
  36.    'Variables para las coincidencias
  37.    Dim oMuser As Match
  38.    Dim oMpass As Match
  39.    'Variables para los indices de las strings de salida _
  40.     y previamente la cantidad de repeticiones (ahorro variables)
  41.    Dim cU As Byte
  42.    Dim cP As Byte
  43.  
  44.    'Crear los objetos del RegExp User y analizar
  45.    Set oREuser = New RegExp
  46.    With oREuser
  47.        .Global = True
  48.        .Pattern = USERPATTERN
  49.        Set oMCuser = .Execute(sHTML)
  50.    End With
  51.  
  52.    'Crear los objetos del ExpReg Pass y analizar
  53.    Set oREpass = New RegExp
  54.    With oREpass
  55.        .Global = True
  56.        .Pattern = PASSPATTERN
  57.        Set oMCpass = .Execute(sHTML)
  58.    End With
  59.  
  60.    'Dimensionar el array
  61.    cU = oMCuser.Count - 1
  62.    ReDim sUser(cU) As String
  63.    cU = 0 ' Vuelvo a cero para seguir usando esta variable.
  64.  
  65.    'Guardar Resultados user
  66.    For Each oMuser In oMCuser
  67.        sUser(cU) = oMuser
  68.        cU = cU + 1
  69.    Next
  70.  
  71.    'Dimensionar el array
  72.    cP = oMCpass.Count - 1
  73.    ReDim sPass(cP) As String
  74.    cP = 0 ' Vuelvo a cero para seguir usando esta variable.
  75.  
  76.    'Guardar Resultados pass
  77.    For Each oMpass In oMCpass
  78.        sPass(cP) = oMpass.SubMatches(0)
  79.        cP = cP + 1
  80.    Next
  81.  
  82.    'Destruir RegExp para ahorrar memoria y porque queda lindo :D
  83.    Set oREuser = Nothing
  84.    Set oREpass = Nothing
  85. End Function
  86.  


« Última modificación: 23 Mayo 2012, 12:20 pm por Elemental Code » En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #1 en: 23 Mayo 2012, 04:14 am »

La regExp de password se poria educir a

(?:[pP]?assword:? |nod32key:)(\w{10})


En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #2 en: 23 Mayo 2012, 04:16 am »

:O a ver que pruebo y lo añado, gracias.
todavia patino un poco en esto de las regexp :P



No funciono, necesito que me reconozca
password: asgiaha
password:asgiaha

y eso falla :P
« Última modificación: 23 Mayo 2012, 04:19 am por Elemental Code » En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #3 en: 23 Mayo 2012, 09:14 am »

Citar
Código
  1. ' º Nombre    : mParseKeys.cls
  2.  
¿Una clase para una función? :rolleyes:



Quedaría más bonito si en vez de ingresar dos arrays utilizas un Type.

Código
  1. Option Explicit
  2.  
  3. Public Type NodUP
  4.    User As String
  5.    Password As String
  6. End Type
  7.  
  8. Public Function ParseKeys(ByRef sHTML As String) As NodUP()
  9.  



Creo que te puedes ahorrar el crear dos objetos, con uno yo creo que valdría.  :P



Usas esto:
Código:
(?:[pP]?assword:? |[pP]?assword:?|nod32key:)(\w{10})

Según lo tienes puesto, con el [pP]?, también te sacaría "assword". ("palabra culo" en inglés :-X).

Utilizando IgnoreCase cuando creas el objeto para que no se fije en ninguna mayúscula. :)
Yo pondría algo así:

Código:
(password|nod32key)\s*:?\s*(\w{10})

DoEvents! :P
« Última modificación: 23 Mayo 2012, 09:30 am por Psyke1 » En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #4 en: 23 Mayo 2012, 12:28 pm »

aja ni cuenta me habia dado del .cls

Pense en usar un Type pero me parecio medio rebuscado al pedo.
ademas no se si lo lei o estaba borracho que escribir resultados mediante byref es mas rapido que escribirlos como resultado de la funcion.
 :silbar:


Y esta bueno esa expresion regular, pero me gusta mas asi
(ya no detecta assword :P)

Código:
(?:(?:[pP]{1})assword:?\s?|nod32key:?\s?)(\w{10})

No tengo ni jodida idea de como hacer que sea case sensitive o no :D
En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #5 en: 23 Mayo 2012, 12:48 pm »

Así se pone:

Código
  1. Set oREpass = New RegExp
  2.    With oREpass
  3.        .Global = True
  4.        .Pattern = PASSPATTERN
  5.        .IgnoreCase = True
  6.        Set oMCpass = .Execute(sHTML)
  7.    End With

La expresión regular que pones es fea y repites cosas. Lo más sencillo siempre mejor.  ;)



ademas no se si lo lei o estaba borracho que escribir resultados mediante byref es mas rapido que escribirlos como resultado de la funcion.
 :silbar:

Sería un procedimiento, puesto que no devuelve ningún valor, y si la velocidad es problema, siempre puedes hacer esto:

Código
  1. Option Explicit
  2.  
  3. Public Type NodUP
  4.    User As String
  5.    Password As String
  6. End Type
  7.  
  8. Public Function ParseKeys(ByRef sHTML As String, ByRef UP As NodUP())
  9. '// code
  10. End Sub
  11.  

DoEvents! :P
« Última modificación: 23 Mayo 2012, 14:05 pm por Psyke1 » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: ParseKeys (REG EXP) limpiar claves del NOD32
« Respuesta #6 en: 23 Mayo 2012, 16:03 pm »

Ups, perdon se me paso un ? al contestar (estaba en el cel, no pidas mucho :xD)

igual cuando es uno solo no hace falta poner {1} ni tampoco poner otro grupo no capturador

Código:
(?:[pP]assword:?\s*|nod32key:?\s*)(\w{10})

\s* significa que pueden haber tantos espacios como quieran, más flexible :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Limpiar lector de CD
Electrónica
dafne 5 13,746 Último mensaje 27 Septiembre 2005, 16:24 pm
por El_Niño_Güey
Limpiar dbcombo
Programación Visual Basic
jess 1 1,465 Último mensaje 10 Diciembre 2005, 02:29 am
por NYlOn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines