Защита информации в системах дистанционного обучения с монопольным доступом
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: гражданское право реферат, реферат на тему человек
| Добавил(а) на сайт: Popyrin.
Предыдущая страница реферата | 9 10 11 12 13 14 15 16 17 18 19 | Следующая страница реферата
mov RAND ==> REG_6 xchg VAR_14 VAR_12 VAR_14 VAR_12 mov CONST ==> VAR_15 add VAR_15 VAR_18 ==> VAR_15 mov RAND ==> REG_4 mov CONST ==> VAR_19 add VAR_19 VAR_9 ==> VAR_19 add REG_8 REG_7 ==> REG_8 xchg REG_2 VAR_13 REG_2 VAR_13
Эта часть повторяется много раз: mov RAND ==> REG_6 xor REF_VAR_11 VAR_14 ==> REF_VAR_11 mov RAND ==> REG_4 mov RAND ==> REG_9 xor REF_VAR_11 VAR_15 ==> REF_VAR_11 sub VAR_11 CONST ==> VAR_11 mov RAND ==> REG_7 dec VAR_14 ==> VAR_14 cmp VAR_14 CONST jnz CONST
…………..
mov RAND ==> REG_1
add REG_9 REG_6 ==> REG_9
test_time1 VAR_10
OK TIME (continue)
exit
3.2.3. Генератор полиморфного кода
3.2.3.1. Блочная структура полиморфного кода
Основу генератора полиморфного кода составляют таблицы выбора. Как
уже было описано ранее, алгоритм шифрования и расшифрования состоит из
восьми обязательных функциональных блоков. Каждый блок хоть и выполнит
строго определенную функцию, но может быть реализован многими способами.
Причем с использованием различных виртуальных регистров и виртуальных ячеек
памяти. Возможные комбинации реализации блока описаны в специальных
таблицах следующего вида, о которых будет сказано позднее.
//-----------------------------------------------------------
// Блок N5. (x1)
// Служит для организации цикла.
// ES_VARIABLE_0 – ячейка, которая может быть занята под счетчик.
// ES_REG_0 - регистр, который может быть занят под счетчик.
// ES_ADDRESS_0 - куда осуществить переход для повтора цикла.
BLOCK_START(05_00)
EO_DEC, EOP_VAR, ES_VARIABLE_0,
EO_CMP, EOP_VAR, ES_VARIABLE_0, EOP_CONST, 0,
EO_JNZ, EOP_CONST, ES_ADDRESS_0
BLOCK_END(05_00)
BLOCK_START(05_01)
EO_DEC, EOP_REG, ES_REG_0,
EO_CMP, EOP_REG, ES_REG_0, EOP_CONST, 0,
EO_JNZ, EOP_CONST, ES_ADDRESS_0
BLOCK_END(05_01)
BLOCKS_START(05)
BLOCK(05_00)
BLOCK(05_01)
BLOCKS_END(05)
BLOCKS_SIZE_START(05)
BLOCK_SIZE(05_00)
BLOCK_SIZE(05_01)
BLOCKS_SIZE_END(05)
//--------------------------------------------------------------
Под полиморфизмом понимается не только выбор и сочетание
произвольного набора блоков, но и их расположение в памяти. Стоит отметить, что просто построение алгоритма из набора различных блоков достаточно
сложная процедура. Так как необходимо учитывать использование виртуальных
регистров и виртуальной памяти, используемых в разных блоках по разному.
Например, использование определенного регистра в качестве счетчика во
втором блоке автоматически приводит к учету этой особенности и назначению
этого регистра во всех других блоках.
Как было сказано ранее, алгоритмы шифрования и расшифрования генерируются одним алгоритмом и функционально различаются только блоками преобразований данных. На этом их схожесть заканчивается. Коды алгоритма шифрования и расшифрования могут быть совершенно непохожи друг на друга и состоять из разного набора инструкций виртуальной машины.
Вернемся к распределению блоков в памяти. Помимо того, что каждый алгоритм состоит из произвольного набора функциональных блоков, эти блоки не имеют фиксированного места расположения. Скажем, что под весь алгоритм выделено 200 байт, а размер всех блоков в сумме составляет 100 байт. В результате положение этих блоков как бы "плавает" от одного сгенерированного алгоритма к другому. Должно выполняться лишь одно условие: соблюдение четкой последовательности расположения блоков. То есть, адрес расположения блока с большим номером не может быть меньше, чем адрес блока с меньшим номером. Для большей наглядности приведем рисунок 6.
[pic]Рисунок 6. Расположение функциональных блоков в памяти.
Белым цветом показаны все функциональные блоки. Серым цветом отмечены
пустые места, которые будут заполнены произвольными холостыми блоками.
Может получиться, например, и такая картина распределения блоков, когда
между некоторыми нет промежутка заполняемого холостыми блоками. Такая
ситуация показана на рисунке 7.
[pic]Рисунок 7. Плотное расположение функциональных блоков в памяти.
Как функциональные блоки, так и холостые, могут иметь различную
длину. После случайного расположения функциональных блоков происходит
заполнение пустых пространств между ними холостыми блоками. Причем, существуют холостые блоки длиной 1, для того чтобы можно было заполнить
пустые места в любом случае. Размер памяти, выделенный под создаваемый код
алгоритма, выбирается произвольно. В данной версии он лежит в пределах от
160 до 200 байт. Это с запасом покрывает максимально необходимый размер
памяти, необходимый для размещения 8 самых больших функциональных блоков из
всех возможных, и оставляет место под холостые блоки. Более большой
полиморфный код хоть и будет сложнее для анализа, но это может существенно
замедлить процесс шифрования и расшифрования. По этому лучше всего
придерживаться разумного баланса.
3.2.3.2. Алгоритм генерации полиморфного кода
Опишем теперь пошагово как работает генератор полиморфного кода.
1. На первом этапе выбираются характеристики будущих алгоритмов. К ним относятся:
a) размер памяти, выделенной под код;
б) в каких регистрах или ячейках будут располагаться указатели на модифицируемый код;
г) сколько раз будут повторяться функциональные блоки 3 и 4;
д) в каких регистрах или ячейках будут располагаться счетчики циклов;
При этом количество повторений блоков 3 и 4 должно быть одинаковым и для алгоритма шифрования и для алгоритма расшифрования, так как каждой команде преобразования данных при шифровании должна быть сопоставлена обратная команда в алгоритме расшифрования.
2. Виртуальная память, используемая в алгоритме, заполняется случайными значения.
3. Создается 1-ый функциональный блок и помещается в промежуточное хранилище.
а) Случайным образом ищется подходящий первый блок. Критерий поиска – блок должен использовать регистр или ячейку памяти под указатель, в зависимости от того какие характеристики были выбраны на первом шаге
(пункт б).
Рекомендуем скачать другие рефераты по теме: ответы 5 класс, реферат теория.
Категории:
Предыдущая страница реферата | 9 10 11 12 13 14 15 16 17 18 19 | Следующая страница реферата