necesito ayuda! error de código al depurar!

Iniciado por iDDoS, 4 Abril 2015, 18:15 PM

0 Miembros y 1 Visitante están viendo este tema.

iDDoS

buenas, pues estoy como loco buscando un keylogger en visual basic y creo que por fin he encontrado uno, incluso con su código fuente.
resulta que estaba todo perfecto pero cuando lo depuré me saltó este error y no sé de que se trata. aquí os dejo una imagen, por cierto, es un keylogger que envia logs al email.

http://www.imageshost.eu/image/Ypk

espero recibir ayuda y gracias de antemano!


Miseryk

Qué tipo de variable es result?

PD: .NET es un asco.
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!

iDDoS


tincopasan

se ve mu poco código, pero supongo que declaraste la función " GetAsyncKeyState " porque sino no hay forma que la use así nomás.

Ah y tiene más pinta de .net que de vb, tendría que ir en otro foro.

Eleкtro

#4
@Miseryk
Decir ".Net es un asco" no ayuda a nadie ni aporta nada, evitemos ese tipo de comentarios superficiales y sin argumentar, por no decir que es un comentario completamente falso y probablemente sea debido a una ignorancia sobre la plataforma .Net, ya que si ese es tu modo de defender un lenguaje inferior y obsoleto cómo vb6 pues... no lo comprendo, pero tampoco pretendo comprenderlo por que el comentario estuvo fuera de lugar.

@iDDoS
Trata siempre de publicar el código para un mejor análisis, aparte de la imagen que compartiste.

Una excepción del tipo PinvokeStackImbalance sucede cuando, después de una llamada a la plataforma de invocación (P/Invoking), el CLR detecta que la profundidad de la pila no coincide con la profundidad de la pila esperada, esto suele indicar que la firma de tus definiciones P/Invoke son incorrectas.

Yo lo primero que te recomendaría es deshacerte de ese código fuente, por que viendo la imagen el autor utiliza muy malas prácticas por todos lados y no me quiero imaginar el resto del código, así no vas a aprender bien, pero bueno, te explico, para intentar solucionar (algunos de) los fallos lo primero que debes hacer es revisar las definiciones P/Invoke que haya en ese código fuente y comprobar que las firmas de cada miembro sean correctas, empezando por la firma de la función GetAsyncKeyState, ajústala a la firma oficial:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293%28v=vs.85%29.aspx

Código (vbnet) [Seleccionar]
<DllImport("user32.dll", PreserveSig:=True, SetLastError:=False, CharSet:=CharSet.Auto)>
Private Shared Function GetAsyncKeyState(ByVal vKey As Keys) As Short
End Function


Reemplaza la función "GetShift" de ese código, por esta otra (es practicamente lo mismo):
Código (vbnet) [Seleccionar]
Public Function IsShiftPressed() As Boolean
   Return Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey))
End Function


Te muestro un ejemplo (incompleto) de iteración:
Código (vbnet) [Seleccionar]
Dim result As Short = 0

For Each key As Keys In [Enum].GetValues(GetType(Keys))
   result = GetAsyncKeyState(key)
   Debug.WriteLine(String.Format("Key: {0}; Result: {1}", key.ToString, result))
Next key


Saludos