Algorithms
Об упрощении выражений со смешанной битовой и целочисленной арифметикой
Ю. В. Косолапов Южный федеральный университет, ул. Большая Садовая, 105/42, Ростов-на-Дону, 344006, Россия
Аннотация:
Выражения со смешанной булевой и целочисленной арифметикой (далее — MBA-выражения, от англ. Mixed Boolean- Arithmetic) от
$t$ целочисленных
$n$-битных переменных часто находят применение при обфускации (запутывании) программного кода. Запутывание заключается в замене коротких выражений более длинными эквивалентными выражениями, на исследование которых, как представляется, аналитиком может быть затрачено больше времени. В работе показано, что для упрощения линейных MBA-выражений (сокращения количества слагаемых) может быть применена техника, аналогичная технике декодирования линейных кодов по информационным совокупностям. На основе этой техники в работе построены алгоритмы упрощения линейных MBA-выражений: алгоритм нахождения выражения с минимальным числом слагаемых и алгоритм сокращения числа слагаемых. На основе алгоритма сокращения числа слагаемых построен алгоритм, позволяющий оценить стойкость MBA-выражения к упрощению. В работе экспериментально оценена зависимость среднего числа слагаемых в линейном MBA-выражении, возвращаемом алгоритмами упрощения, от разрядности
$n$, числа итераций декодирования и мощности набора булевых функций, по которому ищется линейная комбинация с минимальным числом ненулевых коэффициентов. Результаты экспериментов для всех рассмотренных
$t$ и
$n$ показывают, что если до обфускации линейное MBA-выражение содержало
$r=1,2,3$ слагаемых, то разработанные алгоритмы упрощения с вероятностью, близкой к единице, позволяют по обфусцированному варианту этого выражения найти эквивалентное с числом слагаемых не более
$r$. В этом заключается главное отличие техники декодирования по информационным совокупностям от известных техник упрощения линейных MBA-выражений, в которых целью является сокращение числа слагаемых до не более чем
$2^t$. В работе также установлено, что для случайно сгенерированных линейных MBA-выражений с ростом
$n$ среднее число слагаемых в возвращаемом выражении стремится к
$2^t$ и не отличается от среднего числа слагаемых в линейном выражении, возвращаемом известными алгоритмами упрощения. Полученные результаты, в частности, позволяют определить
$t$ и
$n$, для которых количество слагаемых в упрощенном линейном MBA-выражении в среднем будет не менее заданного.
Ключевые слова:
обфускация программного кода, MBA-выражения, упрощение MBA-выражений, декодирование по информационным совокупностям.
УДК:
004.056.5
MSC: 93B11 Поступила в редакцию: 03.04.2023
Исправленный вариант: 17.05.2023
Принята в печать: 17.05.2023
DOI:
10.18255/1818-1015-2023-2-140-159