LINUX.ORG.RU

Что изучать, чтобы писать антивирусы?

 , , ,


0

1

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

Языки: c (без плюсов, в первую очередь), c++, в меньшей степени assembler. Высшая математика для этого не нужна, но для написания драйверов нужно хорошее знание ядра и программного интерфейса железа, для которого пишутся драйвера. Для написания антивирусов — вирусы, как уже сказали.

А вообще начать программировать лучше с чего-нибудь попроще. Например, с Go! (известен также как golang). Но это без графики (впрочем, для драйверов она и не нужна). А уже потом по ходу дела определиться в специализации, и если желание не пропадёт, перейти к изучению написанного в п. 1.

aureliano15 ★★ ()
Ответ на: комментарий от Petya-A

Ну я кстати и программирую на го

Если уже достаточно хорошо изучил его, а также основные алгоритмы, паттерны и библиотеки (сетевые и пр.), то можно переходить к си без плюсов. Когда почувствуешь себя уверенно и в нём, можно начать изучать структуры и api ядра. Потом можно попробовать создать на си какое-нибудь простенькое устройство. Например, /dev/one, которое всегда выдаёт 1 (аналогично /dev/zero) или что-то ещё, что придёт в голову. Это уже пол пути к написанию полноценных драйверов под linux.

Антивирусы под Linux не очень актуальны. Можно посмотреть исходники clamav. Хотя в мире антивирусов он не больно котируется, зато открытый. Что там нужно в первую очередь изучать? Думаю (но могу ошибаться), если речь об антивирусах в узком смысле слова (т. е. не включая разные мониторы и пр.), то это поиск сигнатур. Для этого нужно хорошо освоить дизассемблер (а перед этим, естественно, ассемблер) и отладчик. Впрочем, отладчик понадобится везде, как и профайлер.

Но вообще драйвер и антивирус — совершенно разные темы. Непонятно, почему ты их собрал в одном вопросе.

Ну и для трудоустройства неплохо ещё овладеть си++, т. к. фирм, где пишут на нём, больше, чем фирм, использующих чистый си. Хотя для системного программирования чистый си лучше, а для прикладного в большинстве случаев не нужен ни си, ни си++.

aureliano15 ★★ ()
Ответ на: комментарий от Petya-A

Ладно, даю краткое пояснение:
То что на линуксе нет антивирусов это всё враки.
Всё на линуксе есть и даже круче чем у Касперского, потому что является органической частью ядра.
Всё отличие от виндовых антивирусов в том, что нет единого центра управления и шильдика "Антивирус".

Это очень сложные и в понимании, и в настройке системы и я них не разбираюсь, могу вот только ещё раз повторить узвестную мне часть страшных слов: Selinux,AppArmore,мандатный контроль доступа, iptables, остальные слова ищи сам, я надеюсь что ты уже понял, что надо искать не "антивирус", а то что реализует тот или иной конкретный функционал.

В принципе, если хочешь, о можешь всё это изучить, сделать единый центр конфигурации и управления и назвать его "Антивирусом".

Ну и про Clamave тебе уже выше написали.

torvn77 ★★★★★ ()

Какие языки изучать

C, Rust, какой-нибудь скриптовый пердлопистон. Языки не то чтобы важны, тебе больше придётся в кишках разных ОС копаться.

на какие разделы высшей математики налегать?

Я бы налёг на какую-нибудь сисястую девку на твоём месте. Потому что антивирусы – это не то чтобы очень денежная штука. А так – то же, что и в общем в программировании: теория множеств, линейная и абстрактная алгебра, теория типов, теория алгоритмов, численные методы, теория вероятностей и статистика, факультативно можно топологию захватить, если хочется. Если полезешь в криптографию, тебе понадобится теория чисел. Плюс довольно многие задачи кодирования данных сводятся к геометрическим задачам, так что геометрию тоже придётся учить.

Алсо, не слушай torvn77 что бы он ни писал. Он слегка умственно отсталый и живёт на помойке с тараканами.

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 3)

Заведи правильные знакомства для начала, иначе в РФ быстро уедешь по 273-й как минимум. А то и ещё чего-нибудь. Нельзя сейчас просто так взять и начать оказывать услуги по информационной безопасности.

anonymous ()
Ответ на: комментарий от hateyoufeel

@hateyoufeel, раз ты так умён меня оскорблять, то может перечислить все возможности антивируса Касперского?

или ты девочка и мне это сделать за тебя?

Например поясни, что такое Блокирование вредоносного ПО и других угроз и как это соотносится с понятем антивируса в ТВОЁМ понимании?

Обрати внимание, не вирусов, а вредоносного ПО.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 4)

Какие языки изучать и на какие разделы высшей математики налегать?

Нужно «почерк» иметь хороший, иначе ничего не получится …

anonymous ()

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

AKonia ()
Ответ на: комментарий от torvn77

гуй для настройки PAM,ACL, AppArmore, Selinux и прочих систем мандатного контроля напишет. Да, посоны, кто там начинает набигать на программирование. Потом вас с руками оторвут на работу.

anonymous ()
Ответ на: комментарий от anonymous

Нет, не возьмут на работу, а скачают приложение, всё с его помощью настроят и будут время от времени закрывать окошко с просьбою прислать донаты за реализацию годного проекта, ну пожалуй ещё за это окошко обосрут на форуме(ЛОРе)

torvn77 ★★★★★ ()
Ответ на: комментарий от aureliano15

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

SR_team ★★★★ ()
Ответ на: комментарий от SR_team

Я по работе очень много ревершу, и ассемблер вижу больше плюсов

Так я же сказал про «в среднем по больнице». Для написания системных программ, включая дрова и модули ядра, в основном нужен си. Ассемблер тоже может пригодиться, но в меньшей степени. Про антивирус и поиск сигнатур я в другом посте так и написал, что здесь он однозначно нужен. А про кресты упомянул даже не столько в связи с поставленными ТС’ом вопросами, сколько с перспективой найти работу. Зная кресты, её найти проще, чем зная только си. Хотя есть фирмы, принципиально работающие на чистых сях. Зная же только один ассемблер и ничего больше, программистскую работу в современном мире вообще вряд ли найдёшь. Даже если придёшь на фирму, где нужен и ассемблер, и си, и скажешь, что знаешь только си, зато хорошо, весьма вероятно, что возьмут, ну а ассемблер по ходу дела подучишь. Если же скажешь, что кроме асма ничего не знаешь, зато в асме — царь, то пожмут плечами, про себя подумав: «вот ещё один мамкин кулхацкер или фрик», и вежливо откажут. Отсюда и приоритеты для ТС’а: сначала си, потом можно подучить ещё и кресты, ну и в самую последнюю очередь — асм.

aureliano15 ★★ ()

Хорошей базой сходу будут: алгоритмы, математический анализ, линейная алгебра, функциональный анализ, логика, теория вероятностей, математическая статистика и ради разнообразия можешь познакомиться с теорией Галуа.

– самое долгое, это 4 года –

Далее, учишь C++. До восьми часов в день (с обязательным перерывом после четырёх часов занятий).

– самое долгое, это 2 года –

Далее, помогаешь ребятам здесь: https://github.com/Cisco-Talos/clamav-devel

– самое долгое, это 2 года –

Это всё. Теперь ты готов писать «свой» антивирус.

anonymous ()
Ответ на: комментарий от aureliano15

Если же скажешь, что кроме асма ничего не знаешь, зато в асме — царь, то пожмут плечами, про себя подумав: «вот ещё один мамкин кулхацкер или фрик», и вежливо откажут.

Подтверждаю. Более того, некоторых открыто подозревают в «отклонениях», если он не сводит в «таких конторах» свои успехи, как минимум, к C.

anonymous ()
Ответ на: комментарий от Miguel

Я работал в DrWEB одно время, реверсом не занимался вообще. Для того, чтобы антивирусы писать, реверсить не обязательно.

А как же искать сигнатуры? Конечно, если работаешь в коллективе и выполняешь только часть задачи, не связанную с их поиском, то можно. Но если всё делаешь сам?

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

Человека на собеседовании назвали «шизанутым на голову», когда он принёс на ассемблере то (на бумажках а4, лол), что следовало адаптировать к нему с Си.

Чел был крутой, но «нахер надо».

anonymous ()
Ответ на: комментарий от anonymous

Чел был крутой

Я его конечно не видел, поэтому спорить не буду. Но то, что он принёс на бумажке непонятный ассемблерный листинг, который проще было принести на флешке, наводит на подозрение, что код мог быть нерабочим или кривым, и челу очень не хотелось, чтоб его кто-то случайно отассемблировал и запустил. Хотя, конечно, душа фрика — потёмки. :-)

aureliano15 ★★ ()
Ответ на: комментарий от Miguel

В одно рыло такие штуки уже не делаются.

Но вопрос же не в том, делаются или нет. А в том, что ТС спросил, что ему нужно, чтобы сделать. Понятно, что касперского он в одно рыло не сделает. Но какой-нить учебный антивирь, отлавливающий по сигнатурам пару вирусов — вполне можно.

aureliano15 ★★ ()
Ответ на: комментарий от deep-purple

Да, вот. Потому как реальные проблемы информационной безопасности имеют мало общего с тем, что толкается в этих курсах и на кафедрах ИБ в ВУЗ-ах. Про последние вообще много чего плохого могу рассказать, но не буду. Одно скажу, что бездарей с тех кафедр я много повидал на конкурсах/мероприятиях в своё время и ржал с того что они втирали на серьёзных щщах.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 2)

Курсы психологии по запугиванию вирусами и внедрению мысли что антивирусы нужны. Ну и слова заумные зазубри, эвристика там, метаданные и такое прочее.

anonymous ()
Ответ на: комментарий от aureliano15

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

anonymous ()
Ответ на: комментарий от anonymous

Современная антивирусная индустрия

Это относительно небольшие деньги в России, как и написание системного софта (драйверов), по сравнению с другими it специализациями. Но как оно будет лет через N — мы не знаем. А выбирать надо то, что по сердцу, если за него хоть сколько-то платят. Таково моё имхо.

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

Но вообще драйвер и антивирус — совершенно разные темы. Непонятно, почему ты их собрал в одном вопросе.

Я не люблю ванговать, но мне кажется, что ТС испытывает тягу к низкоуровневому программированию, хочет копаться в кишках системы и др. Поэтому он вот так и обобщил разнородные вещи.

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

hobbit ★★★★★ ()

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

«Ляг поспи и …»

anonymous ()