- 1
Давайте обсуждать написание вирья.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Давайте обсуждать написание вирья.
Есть исходник вирья -- выкладывай. Поржём вместе. А если нет, то на нет и суда нет.
Вот раньше писались хорошие вирусы. Сейчас же, когда народ вконец отупел и обленился, инет наводнили примитивные рулонные троянцы за авторством корыстной, меркантильной, невоспитанной и наглой школоты. Попраны все истины POC. Кое-где я видел объявление о платной разработке malware (на заказ).
Создателям хороших, вкусных вирусов (как правило, опытные ассемблерщики) сейчас не менее 40-45 лет, а то и все 50.
1. Сейчас 64-битная винда не загружает драйверы с недействительной цифровой подписью, поэтому драйвера мы заразить не можем. У 32-битной винды проверка подписи опциональна. Как в других ОС, нужно уточнить.
2. Вирус имеет такие же права доступа, как заражённая им программа. Если заражённая программа запущена от имени рядового пользователя, она может срать далеко не в любые файлы. Нужно либо искать дырки в защите, либо просить запустить её от имени админа.
3. Защищённый режим не позволяет срать в память произвольного процесса. Программы могут быть запущены в разных виртуальных пространствах и не видеть память друг друга. Засрать можно только память тех программ, которые в одном пространстве с запущенной, и то можно схлопотать от защиты.
Обход этих защит требует серьёзной квалификации, а не хуяк-хуяк-в-продакшен.
>>, поэтому драйвера мы заразить не можем
На самом деле можем: при установке драйвер будет ругаться на отсутствие подписи .cat файла, при загрузке можно сказать "bcdedit /set testsigning on"
https://docs.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option
>>Как в других ОС, н
Если не считать всякий SecuteBoot, то в Linux и FreeBSD ты можешь загрузить любой модуль ядра (modprobe и kldload соответственно) если ты рут.
В OpenBSD динамическая загрузка модулей отсутствует, и потому ты должен пересобирать ядро (и линковать туды свой вир)
>>либо просить запустить её от имени админа.
Если программа запущена от амдина, вошедшего интерактивно (не как сервис и не как доступ по сети) то она все равно подвержена UAC: у нее отнимут примерно все привелегии (никогда не могу написать это слово правильно), если ее запустят не через AppInit, то-есть через явное согласие пользовтаеля на UAC.
Так же стоит поамнить что многие сервера явно понижают свои привелегии.
>>Засрать можно только память тех программ, которые в одном пространстве с запущенной
Ну две программы наврядли будут делить адресное пространство (иметь одну и ту же таблицу страниц), но можно быть для одной из них модулем или как-то ее обмануть и заставить загрузить твою .dll.
Бывают ьак же программы с shared mem, но такие секции обычно не исполняют - там просто данные лежат.
Нужны активные действия пользователя/админа, как и в случае включенной UAC.
К частью для маминых хакеров, умамыкомптютерщики часто отключают UAC чтобы не нажимать лишние кнопки
1. В программе нужно найти место для инъекции. Для этого придётся дизассемблировать фрагмент кода жертвы. На RISC-процессорах с постоянной длиной инструкций это сделать легче, чем на CISC.
2. Внедрённый код (тело вируса) должен получить доступ к API операционной системы. В "ДОС" для доступа к функциям достаточно было вызвать прерывание. В "Windows" и в "Linux" нужно копать таблицу импорта программы-жертвы в надежде, что найдутся нужные функции (в винде достаточно найти LoadLibrary и GetProcAddress из kernel32.dll).
ABI винды нет, там надо честно линковаться с нужной либой и дергать ее функции
Хакеры могут реверсинженернуть сисколы винды, но тогда вирус может оказаться непереносим
1. Упакованный файл будет неминуемо испорчен.
2. слетит цифровая подпись либо файл не пройдёт внутреннюю проверку по hash/контрольной сумме. Это хоть и редко, но бывает.
3. на зараженный файл будут ругаться мало-мальски все антивирусы.
Кстати, на сайте delfcode.ru есть пример заражения файла расширением последней секции - вирус скидывает своё тело туда и перестраивает точку входа, чтобы первым получать управление. Я долго изучал эти исходники, но отказался от них. Файл можно заразить гораздо более простым способом, без вмешательства в его структуру. Потом эти хамовитые ублюдки предали меня - в тот момент, когда я так нуждался в их помощи. А я в отместку не поделился с ними своим оригинальным способом заражения файла, с сохранением иконки. Я намеренно скомпроментировал свою учётку и больше никогда их не посещал.
Надо попробовать перечислить всё, что только можно заразить хотя бы теоретически.
Есть ли смысл устанавливать так называемые "антивирусы" для мобильных ОС или это наебахтунг, потому что вирусов для них не существует?