Средства разработки приложений


Новый метод маскировки программ - часть 3


Несущественная, "холостая" часть пока никак не соприкасается с основной, функциональной частью программы.
  • "Зацепление" холостой и основной программы. Для этого исполь-зуются как трудноанализируемые свойства программ (например, указатели), так и разнообразные математические тождества и неравенства.

    В качестве примера применения предложенного метода маскировки мы выбрали небольшую программу, которая решает задачу о 8 ферзях. Для маскировки мы выберем основную функцию queens этой программы.

    Метрика queens MM(queens) CM(queens)
    LC 49 711 4171
    YC 0.595 0.8119 0.2402
    UC 0 0 0
    DC 82 8964 143807

    Таблица 4. Изменение метрик для замаскированной процедуры queens

    Преобразование OC TC MC MC/TC CL SL DL D
    MM(queens) 4 29.02 110.68 3.81 5 2 7 3
    CM(queens) ? 170.24 1754.14 10.30 5 2 7 ?

    Таблица 5. Сравнение методов маскировки для функции queens

    В таблице 4 в столбце queens приведены базовые метрики сложности кода для исходной процедуры queens; в столбце MM(queens) - для процедуры, замаскированной с помощью предложенного метода маскировки; в столбце CM(queens) - для процедуры, замаскированной с помощью коммерческого маскировщика рассмотренного выше.

    В таблице 5 приведены метрики цены применения маскирующего преобразования, усложнения программы требуемой глубины анализа для предложенного метода маскировки MM и для коммерческого маскировщика CM. Для коммерческого маскировщика сложность алгоритма маскировки неизвестна, поэтому в соответствующих ячейках таблицы стоит знак "?". Из таблицы видно, что новый метод маскировки MM существенно дешевле, чем реализованный в коммерческом маскировщике.




    Начало  Назад  Вперед