Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Psyke1 en 2 Octubre 2012, 20:51 pm



Título: [RETO/FAKE] Adivinador de MsgBox
Publicado por: Psyke1 en 2 Octubre 2012, 20:51 pm
A ver quien hace una función que devuelva true si en el código de vb introducido se ejecutará un MsgBox o un Print con "Hola Mundo".

Estructura:
Código:
Private Function AdivinarMsgBox(ByVal sVBcode As String) As Boolean

Ejemplo de llamadas:

TRUE
Código:
Private Form Load()
   If 1<4 Then
      Msgbox "Hola Mundo"
   End If
End Sub

FALSE
Código:
Private Form Load()
      'Msgbox "Hola Mundo"
End Sub

TRUE
Código:
Private Form Load()
      Me.Print "Hola Mundo"
End Sub

FALSE
Código:
Private Form Load()
Dim a As Long, b As Long
   a=23
   b=234
  
   If a>b and 234>45634 Then
   if "asd" = "aasdsd" then
      Msgbox "Hola Mundo"
   end if
   End If
End Sub

Vale todo!

Suerte!


Título: Re: [RETO] Adivinador de MsgBox
Publicado por: Karcrack en 2 Octubre 2012, 22:08 pm
Deberías especificar más que puede entrar por sVBcode... ¿Es código encapsulado en una función? ¿Es una función sin cerrar como tus ejemplos? ¿Puede ser cualquier cosa?...

Dime que resultado daría cada bloque:

Código:
Private lala()
Debug.Print "Test"
   If 1<4 Then
      Msgbox "Hola Mundo"
   End If

Código:
Private sub lala()
   If True Then
      Msgbox "Hola" + " Mundo"
   End If
End Sub
Código:
Debug.Print "Hola";
Debug.Print " Mundo"

Código:
Dim s as String
s = "Hola Mundo"
MsgBox s

Deberías especificar muchísimo más todos esos aspectos, y aún así quedarían aspectos abiertos que dejan "hacer trampas". Un reto con un planteamiento tan vago se puede abordar según te dé la gana :xD

Creo entender que pides que se haga un sencillo interprete que siga una lógica simple de comparaciones... pero es sólo mi presentimiento.

Saludos >:D


Título: Re: [RETO] Adivinador de MsgBox
Publicado por: BlackZeroX en 3 Octubre 2012, 05:10 am
¿Un parse?... mejor un simple instr()... pero veo que deseas que evaluemos la sentencia... eso es algo mas complejo... se tendría que crear un modulo para verificar el LÉXICO, SINTÁCTICO, SEMÁNTICO para generar un Core y a final de cuentas reproducir una pequeña VM para evaluar cada instrucción, es un royo.

Dulces Lunas!¡.


Título: Re: [RETO] Adivinador de MsgBox
Publicado por: Karcrack en 3 Octubre 2012, 12:05 pm
@BlackZeroX: Conociendo a Psyke1 debe estar usando el Eval() de vbscript cargado como objeto para evaluar todo el código. :xD


Título: Re: [RETO] Adivinador de MsgBox
Publicado por: Psyke1 en 3 Octubre 2012, 12:59 pm
Jajajajajajaja. :laugh:

Podéis olvidar el reto, el caso es que un amigo me dijo que era TOTALMENTE IMPOSIBLE crear una función que verifique si un código ejecutará un un print o un MsgBox (le es indiferente) con "Hola Mundo".

Yo creo que es posible... :rolleyes:
Al menos lo del print, con Eval() y Instr() se podría solucionar.



Pero explicó mal el reto, lo que me quería plantear era esto (primera página):
Código:
http://es.scribd.com/doc/12929250/Indecidibilidad

El cual, obviamente, sí es imposible. :silbar:

DoEvents! :P


Título: Re: [RETO/FAKE] Adivinador de MsgBox
Publicado por: BlackZeroX en 3 Octubre 2012, 18:28 pm
@Karcrack: Si también pensé que por esos rumbos iba...

@Psyke1: No creo que sea IMPOSIBLE como dice tu amigo, mejor dicho seria COMPLEJO ya que se tiene que SIMULAR un código en un ambiente virtual llamando a la API respectiva (estilo hook); lo mismo puede aplicar tambien al CScript de vb6 mas en especifico la que llame a un MSGBox...

Dulces Lunas!¡.