ФЭНДОМ


IntegerFS Править

IntegerFS - файловая система, изолированная от внедрения программами и перехвата потоков.

Обычно применяется для чтения конфигурационных файлов, которые не должны быть перехвачены вирусом и прочим вредоносным ПО.

Схема работы Править

Прерывание 0x14 умеет только EDD чтение. Сам же драйвер находится на порту 0x88.

Туда посылаются специальные биты

Расшифровка битов Править

Возьмем к примеру такую структуру:

1001101111010110101100110110111

Казалось бы, черт ногу сломит в этом двоичном коде.

НО!

Выделим метки маркерных точек(111):

1001101111010110101100110110111

И увидим, что маркеры это три бита идущие через 1 бит после маркера:

1001101111010110101100110110111

Очистим от меток:

1001101010110101100110110

Составим схему расслоения.

Приведем алгоритм кодирования:

Encode

И составим это:

Project

То есть имеем этот синтаксис:

1001101010110101100110110

Подчеркнутые - налилась вода при кодировании.

Курсивные - не кодировались.

На рисунке взято исходное число без одной цифры в конце(такие правила).

То есть наше число:

0101101000110101100110110

А на экране:

01001010111011001101

Напишем их в таблице IntegerFS:

1 2 3 4 5 6 7 8
010 110 100 011 010 110 011 0110
010 010 101 011 110 011 01 Пусто

И прибавим в конец 0110(8-я ячейка второго числа пуста).

010010101110110011010110

Найдем метку:

010010101110110011010110

И маркер:

010010101110110011010110

Возьмем число до маркера:

010010101110

Это основные биты.

Разобьем их:

1 2 3 4
010 001 010 1110

И совместим в байты

1 2 3 4 5
010 001 010 111 0
010001 010111 11110
01001010111 01011111110
0 01001010111 0 01011111110 0

Получили:

0010010101110010111111100

Пишем в таблицу IntegerFS:

1 2 3 4 5 6 7 8
001 001 010 111 001 011 111 1100

Суммируем:

1
001
001
101
010
111

111 - это вершина. К нему прибавлять нельзя.

Значит сверх вершины число 111111.

Начнем:

1
001
011
111
111
111111

Больше чисел не бывает, значит байты 1100 нужно полить водой:

0010010101110010111110000

Разбиваем:

1 2 3 4 5 6 7 8 9
001 001 101 011 100 101 111 100
00
001 001 101 011 100 101 111 100 110

Нужно 9 сумм:

1
001
001
101
101
111
111
100
100
111
110
111111

То есть правильное число:

001001101011100101111100110

Отделяем первые девять байт:

001001101

Это уже можно разбить:

Описание Сост. Значение
1 Включить EDD или нет Нет 0
2 Включить PATA? Нет 0
3 Загружать DDT? Да 1
4 Медленное чтение? Нет 0
5 Скорость 2? Нет 0
6 Скорость 6? Да 1
7 Высокий уровень? Да 1
8 EDD на PATA? Нет 0
9 EDD на SATA? Да 1

Дальше идут данные для BIOS.

Если ты дошел сюда, поздравляю! Ты НАСТОЯЩИЙ ПРОГРАММИСТ!

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики