Пишем вирус..., Наконец написал. |
Пишем вирус..., Наконец написал. |
FreeMan |
4.01.2005 10:23
Сообщение
#1
|
- Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: 4 |
Почти каждый, кто изучает язык ассемблера, рано или поздно пишет вирус, некоторые люди пишут вирус, когда заканчивают изучать какой-нибудь язык программирования... Прежде чем читать то, что я буду писать ниже и понимать хоть что-нибудь, вы должны:
а) знать основные команды ассемблера б) уметь пользоватся АПИ-функциями в) взять где-нибудь (можно и у меня) TASM32 (можно и другой, но каждый компилятор имеет свои особенности). г) отладчик (если собираетесь собственноручно создать зверька, то без отладки довольно трудно найти ошибки) д) прогу, которая прикреплена (на неё вопит касперский, но это не вирус!!!! ) е) иметь здоровую голову (если вы хотите испортить все компы на Земле, то ваше место в больнице, а не здесь) ё) ПОМНИТЬ, ЧТО ЭТОТ МАТЕРИАЛ ПРЕДСТАВЛЕН ТОЛЬКО В ЦЕЛЯХ ОБУЧЕНИЯ, И ЗА ПОСЛЕДСТВИЯ Я НИКАКОЙ ОТВЕТСТВЕННОСТИ НЕ НЕСУ Вроде всё. Теперь план обучения: 1) формат заголовка файла РЕ 2) разбор основных полей заголовка РЕ 3) методика заражения 4) дельта-смещение. 5) поиск АПИ 6) разбор используемых АПИ 7) пишем код 8) Reserved Прикрепленные файлы Pewrsec.exe ( 8.62 килобайт ) Кол-во скачиваний: 3 -------------------- бб
|
FreeMan |
5.01.2005 11:38
Сообщение
#2
|
- Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: 4 |
5.1. Поиск адреса кернела
Кернел висит в памяти. Искать кернел можно многими путями. Я предпочитаю поиск через анализ SEH. SEH это фигня, которая служит для обработки исключений (непредвиденных ситуаций). Теперь теория По fs:0 начинается некоторая структура, называемая Thread Information Block (TIB). Первое поле - указатель на начало цепочки структур EXCEPTION_REGISTRATION_RECORD, каждая из которых содержит адрес процедуры обработки критической ситуации (SEH) и адрес следующей (т.е. предыдущей) структуры, этих обработчиков несколько. То есть если возникает непредвиденная ситуация, то по очереди вызываются эти обработчики, пока один из них не возьмёт на себя обработку исключения. Так вот последний обработчик висит где-то в кернеле. Так как он последний, то адрес следующего будет 0ffffffffh. Теперь предлагаю написать код поиска кернела. xor edx,edx Адреса кернела, в принципе, известны для некоторых версий винды 077e60000h в ХР 0BFF70000h в Win9x В принципе шанс не найти кернел очень маленький (практически отсутствует), поэтому можно и без проверки на РЕ-сигнатуру справится. Посмотрите это в отладчике и всё будет Ok. -------------------- бб
|
Текстовая версия | 31.05.2024 10:01 |