[ASM] BOOTKIT
|
|
Neo | Дата: Среда, 06.06.2012, 10:53 | Сообщение # 1 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Кто-нибудь,когда-нибудь занимался загрузочными вирусами или буткитами?Может есть у кого исходничек, или опыт работы?
|
|
| |
vvova15 | Дата: Среда, 06.06.2012, 13:21 | Сообщение # 2 |
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
| я писал стаью-введение в данную тему http://sysprogramming.ru/?p=22 а чтоб прописать это дело в бутесктор просто открываеш нужный диск(точнее его драйвер) и пишеш туда загрузчик, предварительно откомпиленый асемблером. если интересует тема то могу написать еще пару статеек.
|
|
| |
Don_Diego | Дата: Среда, 06.06.2012, 15:50 | Сообщение # 3 |
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
| Quote (vvova15) если интересует тема то могу написать еще пару статеек. ...и пару примерчиков
|
|
| |
Neo | Дата: Среда, 06.06.2012, 17:10 | Сообщение # 4 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Свой первый загрузчики я уже давно состряпал)))Мне надо Bootkit .Я написал что-то подобное,но при загрузки винды появляется bsod. UNMOUNTABLE_BOOT_DEVICE по-моему.Не пойму из-за чего это. По идее должно работать так: Инсталлятор: 1) Буткит копирует оригинальный mbr в другой сектор для последующего использования (назавём этот сектор буквой А). 2) Далее затирает своим кодом mbr. Начинка инсталлятора(загрузчик): 1)При загрузки копирует себя (на момент загрузки он в 0000:7C00h) в другое место. 2)Откусывает немного памяти для себя и записывается туда. 3)Читает 512 байт из сектора А и джампает на него.(Получается как-то неразумно,т.к читается mbr,потом передаётся на него управление,потом mbr парсит Patitional Table,в ней (в PT)находит активный раздел,читает первые его 512 байт(бутсектор) в 0000:7C00h и опять джампает на него) Вот тут и загружается у меня винда.Идёт полоса загрузки Windows и бах-Bsod! Что мне делать!!! Может затирать не mbr,а сразу BOOT SECTOR?
|
|
| |
vvova15 | Дата: Среда, 06.06.2012, 18:37 | Сообщение # 5 |
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
| скорей всего ты не туда копируеш бутсектор. дизасеблируй код загрузчика MBR и посмотри куда он грузит бутсектор активного раздела
|
|
| |
Marra_Kesh | Дата: Среда, 06.06.2012, 18:51 | Сообщение # 6 |
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
| Quote (vvova15) если интересует тема то могу написать еще пару статеек. Пишите, пишите и еще раз пишите! Пишите ВСЁ! Всё что интересно, и всё что НЕ интересно пишите тоже. Статьи, примеры, коды, программы, etc
|
|
| |
Neo | Дата: Понедельник, 11.06.2012, 10:51 | Сообщение # 7 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Такс.... .С Beautiful screen of death я разобрался . Оказалось,что неправильно Patition table настраивал. Всё дело в смешении и количестве секторов загрузочного раздела.Вот и вылазила ошибка,типо с файловой системой трабла. Теперь мой загрузчик загружает винду и копирует себя в откусанный кусочек памяти :) . Вопрос вот в чём: Как мне определить адрес API функции винды, чтобы её перехватить? Много статей перечитал (хотя их мало в инете нормальных),нужно вроде перехватывать 13 прерывание bios,потом отслеживать какай-то osloader.exe, который в ntldr (я так понял,может это и неправильно).А ntldr можно определить по сигнатуры байт в памяти.Для WinXp это: 8B F0 85 F6 74 21/22 80 3D Потом считать заранее вшитый в сектор драйвер перехвата в память и сделать джамп на DriverEntry. Может кто найдёт хорошую статью по этому вопросу,буду очень рад
|
|
| |
xXxSh@dowxXx | Дата: Среда, 13.06.2012, 16:49 | Сообщение # 8 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| все бы конечно хорошо, вот только хотелось бы и на делфи примерчик глянуть, кто нибудь уже пробовал?
Сообщение отредактировал xXxSh@dowxXx - Среда, 13.06.2012, 16:50 |
|
| |
vvova15 | Дата: Среда, 13.06.2012, 18:34 | Сообщение # 9 |
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
| могу даже сказать название opensource софта, в котором это реализовано: stoned bootkit
Quote все бы конечно хорошо, вот только хотелось бы и на делфи примерчик глянуть, кто нибудь уже пробовал? доставило)
|
|
| |
Neo | Дата: Четверг, 14.06.2012, 11:13 | Сообщение # 10 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Quote (xXxSh@dowxXx) все бы конечно хорошо, вот только хотелось бы и на делфи примерчик глянуть, кто нибудь уже пробовал? На Delphi, только что если инсталлятор написать,а сам буткит на асме пишется. P.S Кстати,я заметил,что много всяких полезных статей про руткиты,буткиты,эксплойты размещены на китайских сайтах.Там,видимо, в интернете по-свободнее,чем в России.
|
|
| |
xXxSh@dowxXx | Дата: Четверг, 14.06.2012, 16:45 | Сообщение # 11 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Quote (Neo) Там,видимо, в интернете по-свободнее,чем в России
ха, как раз таки наоборот, их провайдеры с недавних пор вобще начали блочить половину сетей, ресурсов, сайтов и прочего..., но кто сказал что китайские кодеры, программеры, крякеры и хакеры не обойдут эту проблему
|
|
| |
XSPY | Дата: Четверг, 14.06.2012, 19:51 | Сообщение # 12 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| и чем их инет свободнее?вся свобода только в рамках амбицый провайдеров и государства
|
|
| |
Neo | Дата: Пятница, 03.08.2012, 14:45 | Сообщение # 13 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| После перехвата int 13h система не грузится с сообщением Invalid Paitional Table.Я знаю,что это появляется при а)не найден активный раздел в Patitional table (80h) б)найдено несколько активных разделов в PT в)нет в конце загрузчика сигнатуры 0x55aa.(По-мойму) Мистика вот в чём: Я использую перехваченный int 13h для чтения MBR с диска.Мой перехватчик отлично справляется.На прочитанные байты прыгает и как-бйд-то бы ничего не было.Далее начинает выполнятся виндоусный MBR,который юзает int 13h,но уже перехваченный мной. Управление передаётся на мой обработчик(определено дебагом),всё хорошо,всё замечательно,но в самый последний момент это сообщение((((((.Уж не знаю что и думать.Флаги все вроде сохранены,нужные регистры-тоже.У кого какие идеи? вот мой обработчик прерывания: Доступно только для пользователей
|
|
| |
Волк-1024 | Дата: Вторник, 15.01.2013, 01:44 | Сообщение # 14 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| А чем такие вещи отлаживаются? Ибо мне заколибало ручками исправлять мбр, если коряво написал... :D
Pascal, C\C++, Assembler, Python
|
|
| |
antbert | Дата: Вторник, 15.01.2013, 02:19 | Сообщение # 15 |
Участник
Зарегистрирован: 19.09.2012
Группа: Пользователи
Сообщений: 60
Статус: Offline
| Цитата (Волк-1024) А чем такие вещи отлаживаются? Ибо мне заколибало ручками исправлять мбр, если коряво написал...
fix mbr Если full-copy диска винды. (Командная строка).
Добавлено (15.01.2013, 02:19) --------------------------------------------- Цитата (Neo) Откусывает немного памяти для себя и записывается туда.
Какой толк в таких изощрениях, при восстановлении все затирается, если не ошибаюсь я.
Сообщение отредактировал antbert - Вторник, 15.01.2013, 02:19 |
|
| |
Neo | Дата: Вторник, 15.01.2013, 05:12 | Сообщение # 16 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Цитата (Волк-1024) А чем такие вещи отлаживаются? Отлаживаются такие вещи в Bochs - виртуальной машине. Цитата (antbert) Какой толк в таких изощрениях, при восстановлении все затирается, если не ошибаюсь я. При каком восстановлении?Если просмотреть виндовый загрузчик,то он затирает 0x600 смещение,но никак не откусанное местечко. Давайте люди,пишите,такие вещи))))Если что,то я дошёл до подмены сигнатуры ntldr.Отсановися на получении адреса ядра системы,так сказать.
|
|
| |