Четверг, 25.04.2024, 18:31 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Neo, xXxSh@dowxXx  
delphicode » Обсуждения » Остальные языки программирования » [ASM] BOOTKIT (Создание кода,загружающегося до загрузки ОС)
[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)
если интересует тема то могу написать еще пару статеек.

...и пару примерчиков smile
 
NeoДата: Среда, 06.06.2012, 17:10 | Сообщение # 4
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Свой первый загрузчики я уже давно состряпал)))Мне надо Bootkit cool .Я написал что-то подобное,но при загрузки винды появляется bsod.
UNMOUNTABLE_BOOT_DEVICE по-моему.Не пойму из-за чего это.
По идее должно работать так:
Инсталлятор:
1) Буткит копирует оригинальный mbr в другой сектор для последующего использования (назавём этот сектор буквой А).
2) Далее затирает своим кодом mbr.
Начинка инсталлятора(загрузчик):
1)При загрузки копирует себя (на момент загрузки он в 0000:7C00h) в другое место.
2)Откусывает немного памяти для себя и записывается туда.
3)Читает 512 байт из сектора А и джампает на него.(Получается как-то неразумно,т.к читается mbr,потом передаётся на него управление,потом mbr парсит Patitional Table,в ней (в PT)находит активный раздел,читает первые его 512 байт(бутсектор) в 0000:7C00h и опять джампает на него)
Вот тут и загружается у меня винда.Идёт полоса загрузки Windows и бах-Bsod! surprised
Что мне делать!!!
Может затирать не 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 cool
 
NeoДата: Понедельник, 11.06.2012, 10:51 | Сообщение # 7
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Такс.... biggrin .С Beautiful screen of death я разобрался cool . Оказалось,что неправильно Patition table настраивал.
Всё дело в смешении и количестве секторов загрузочного раздела.Вот и вылазила ошибка,типо с файловой системой трабла. Теперь мой загрузчик загружает винду и копирует себя в откусанный кусочек памяти smile :) smile .
Вопрос вот в чём:
Как мне определить адрес API функции винды, чтобы её перехватить? Много статей перечитал (хотя их мало в инете нормальных),нужно вроде перехватывать 13 прерывание bios,потом отслеживать какай-то osloader.exe, который в ntldr
(я так понял,может это и неправильно).А ntldr можно определить по сигнатуры байт в памяти.Для WinXp это:
8B F0 85 F6 74 21/22 80 3D
Потом считать заранее вшитый в сектор драйвер перехвата в память и сделать джамп на DriverEntry.
Может кто найдёт хорошую статью по этому вопросу,буду очень рад wink
 
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
Кстати,я заметил,что много всяких полезных статей про руткиты,буткиты,эксплойты размещены на китайских сайтах.Там,видимо, в интернете по-свободнее,чем в России. happy
 
xXxSh@dowxXxДата: Четверг, 14.06.2012, 16:45 | Сообщение # 11
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Quote (Neo)
Там,видимо, в интернете по-свободнее,чем в России


ха, как раз таки наоборот, их провайдеры с недавних пор вобще начали блочить половину сетей, ресурсов, сайтов и прочего..., но кто сказал что китайские кодеры, программеры, крякеры и хакеры не обойдут эту проблему wink
 
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
А чем такие вещи отлаживаются? Ибо мне заколибало ручками исправлять мбр, если коряво написал... biggrin :D biggrin

Pascal, C\C++, Assembler, Python
 
antbertДата: Вторник, 15.01.2013, 02:19 | Сообщение # 15
Участник
Зарегистрирован: 19.09.2012
Группа: Пользователи
Сообщений: 60
Статус: Offline
Цитата (Волк-1024)
А чем такие вещи отлаживаются? Ибо мне заколибало ручками исправлять мбр, если коряво написал... biggrin


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.Отсановися на получении адреса ядра системы,так сказать.
 
delphicode » Обсуждения » Остальные языки программирования » [ASM] BOOTKIT (Создание кода,загружающегося до загрузки ОС)
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz