![]() |
![]() |
FreeMan |
![]() ![]()
Сообщение
#1
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
Почти каждый, кто изучает язык ассемблера, рано или поздно пишет вирус, некоторые люди пишут вирус, когда заканчивают изучать какой-нибудь язык программирования... Прежде чем читать то, что я буду писать ниже и понимать хоть что-нибудь, вы должны:
а) знать основные команды ассемблера б) уметь пользоватся АПИ-функциями в) взять где-нибудь (можно и у меня) TASM32 (можно и другой, но каждый компилятор имеет свои особенности). г) отладчик (если собираетесь собственноручно создать зверька, то без отладки довольно трудно найти ошибки) д) прогу, которая прикреплена (на неё вопит касперский, но это не вирус!!!! ) е) иметь здоровую голову (если вы хотите испортить все компы на Земле, то ваше место в больнице, а не здесь) ё) ПОМНИТЬ, ЧТО ЭТОТ МАТЕРИАЛ ПРЕДСТАВЛЕН ТОЛЬКО В ЦЕЛЯХ ОБУЧЕНИЯ, И ЗА ПОСЛЕДСТВИЯ Я НИКАКОЙ ОТВЕТСТВЕННОСТИ НЕ НЕСУ Вроде всё. Теперь план обучения: 1) формат заголовка файла РЕ 2) разбор основных полей заголовка РЕ 3) методика заражения 4) дельта-смещение. 5) поиск АПИ 6) разбор используемых АПИ 7) пишем код 8) Reserved ![]() Прикрепленные файлы -------------------- бб
|
![]() ![]() |
FreeMan |
![]()
Сообщение
#2
|
- ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 480 Пол: Мужской Репутация: ![]() ![]() ![]() |
UnmapViewOfFile - полная противоположность MapViewOfFile.
Цитата BOOL UnmapViewOfFile( lpBaseAddress - адрес, который возвратила MapViewOfFile. Возвращает: не ноль, если всё ок. Использование: push [ebp+pFM] ; адрес, который достаём с переменной SetFileAttributesA - устанавливает аттрибуты файла. Цитата BOOL SetFileAttributes( lpFileName - адрес строки, содержащей имя файл. dwFileAttributes - атрибуты, которые надо установить, у нас FILE_ATTRIBUTE_NORMAL Возвращает: всё ок - не 0. Использование: lea eax,[ebp+offset FName] ; указатель на имя (берём из WFD) CloseHandle - настолько-же крутая АПИ, насколько CreateFile. Она закрывает объект. Цитата Remarks The CloseHandle function closes handles to the following objects: · Console input or output · Event file · File mapping · Mutex · Named pipe · Process · Semaphore · Thread · Token (Windows NT only) BOOL CloseHandle( hObject - хендл объекта, который надо закрыть. Этой ф-ией будем закрывать мэппинг и файл. Возвращает не 0, если успех. FindClose - закрывает хендл поиска. Цитата BOOL FindClose( hFindFile - хендл, еоторый остался после использования FindFirstFileA Возвращает не 0, если успех. Использование: push dword ptr [ebp+offset hFF]; хендл, который достаём с переменной SetComputerNameA - устанавливает имя компа. Это собственно в виде полезной нагрузки. Цитата BOOL SetComputerName( lpComputerName - указатель на новое имя компа. Возвращает не 0, если успех. Использование: lea edi,[ebp+offset NewComp] ; указатель на строку с новым именем Это тот набор АПИ, который мы будем использовать при заражении. В первом поколении мы ещё заюзаем MessageBoxA & ExitProcess, но я думаю их описывать не стоит, ведь "Привет, мир" в винде пишут обычно с использованием этих АПИ. Теперь надо начинать детально рассказывать вам о заражении, описать ещё несколько структур РЕ файла, а после этого объяснить весь код вируса. -------------------- бб
|
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 6:58 |