Методы построения цифровых водяных знаков в исполняемых файлах тема диссертации и автореферата по ВАК РФ 05.13.17, доктор наук Нечта Иван Васильевич

  • Нечта Иван Васильевич
  • доктор наукдоктор наук
  • 2021, ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики»
  • Специальность ВАК РФ05.13.17
  • Количество страниц 220
Нечта Иван Васильевич. Методы построения цифровых водяных знаков в исполняемых файлах: дис. доктор наук: 05.13.17 - Теоретические основы информатики. ФГБОУ ВО «Сибирский государственный университет телекоммуникаций и информатики». 2021. 220 с.

Оглавление диссертации доктор наук Нечта Иван Васильевич

Введение

1. Динамические водяные знаки в исполняемых файлах

1.1 Понятие и классификация цифровых водяных знаков

1.1.1 Обзор предметной области

1.1.2 Специфика формата файла

1.2 Стегоанализ динамического водяного знака

1.2.1 Метод стегоанализа схемы Яа&х-п

1.2.2 Программа для поиска графов в памяти

1.3 Экспериментальная оценка метода стегоанализа

1.4 Модификация метода внедрения динамического водяного знака

1.5 Алгоритм построения полухрупкого цифрового водяного знака

1.5.1 Извлечение сигнала из программы

1.5.2 Сравнение спектров сигнала

1.5.3 Программная реализация

1.6. Анализ свойств полухрупкого цифрового водяного знака

1.7. Выводы по первой главе

2. Хрупкие цифровые водяные знаки

2.1 Обзор существующих методов построения цифровых

водяных знаков

2.1.1 Методы внедрения скрытой информации

2.1.2 Методы контроля целостности исполняемых файлов

2.2 Требования к цифровому водяному знаку

2.3 Метод построения хрупкого цифрового водяного знака для коллектива соавторов

2.4 Анализ свойств цифрового водяного знака

2.5 Элементы реализации чтения цифрового водяного знака

2.5.1 Проблемы реализации защиты в исполняемом файле

2.5.2 Средства анализа исполняемых файлов

2.5.3 Алгоритм чтения цифрового водяного знака

2.6 Анализ алгоритма чтения цифрового водяного знака

2.7 Выводы по второй главе

3. Методы встраивания скрытой информации в текстовые данные

3.1 Методы текстовой стеганографии

3.2 Метод стегоанализа текстовых данных

3.3 Экспериментальное исследование эффективности стегоанализа

3.4 Метод внедрения скрытых данных в текстовый контейнер

3.5 Экспериментальное исследование свойств предложенного метода

3.5.1 Постановка и проведение эксперимента

3.5.2 Программа внедрения скрытого сообщения в текстовый контейнер

3.6 Выводы по третьей главе

4. Оптимизация интерфейса в компьютерных программах

4.1 Элементы теории оптимизации интерфейсов

4.2 Подходы оптимизации меню

4.3 Применение алфавитного кодирования для оптимизации меню

4.4 Модификация алфавитного кода для оптимизации меню

4.5 Построение алфавитного меню

4.5.1 Метод построения алфавитного меню

4.5.2 Программная реализация автоматического построения меню

4.6 Оценка эффективности предложенного алгоритма

4.7 Выводы по четвертой главе

5. Внедрение информации в графы

5.1 Стеганография для алфавитного меню

5.1.1 Метод внедрения сообщений в алфавитное меню

5.1.2 Программная реализация метода внедрения

5.2 Экспериментальное исследование алгоритма внедрения

в иерархию меню

5.3 Внедрение информации в графы социальной сети

5.3.1 Метод внедрения сообщений в граф

5.3.2 Программа чтения скрытых сообщений социальной сети

5.4 Оценка объема внедрения в граф социальной сети

5.5 Выводы по пятой главе

Заключение

Список сокращений и условных обозначений

Список литературы

Приложения

Приложение А

Приложение Б

Приложение В

Рекомендованный список диссертаций по специальности «Теоретические основы информатики», 05.13.17 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы построения цифровых водяных знаков в исполняемых файлах»

Введение

Актуальность темы исследования. При создании программного обеспечения большое внимание уделяют алгоритмам контроля за выполнением лицензионного соглашения. Коммерческая разработка программ требует сохранения используемых алгоритмов в тайне и противодействия несанкционированному копированию. К сожалению, на сегодняшний день производители теряют большое количество финансовых средств из-за несанкционированного копирования программного обеспечения. Широко применяются методы незаконного искажения алгоритма работы программы с целью уничтожения функций проверки лицензионного ключа или иных средств контроля, предусмотренных алгоритмом. В ряде случаев создаваемый недобросовестными производителями продукт содержит в себе фрагменты чужих объектов интеллектуальной деятельности, охраняемых авторским правом. Все вышеперечисленные проблемы становятся причиной потери выручки добросовестными производителями программного продукта.

Решение указанных проблем лежит в области методов стеганографии. В отличие от криптографии, в которой информация скрывается от посторонних с помощью некоторого секретного ключа, задача стеганографии заключается в сокрытии самого факта передачи секретного сообщении. Передаваемое сообщение встраивается в контейнер - некоторый файл, не вызывающий подозрения при передаче. Зарубежная, и в меньшей степени отечественная, судебная практика показывают высокую эффективность применения стеганографии для защиты объектов авторского права.

Наука стеганографии известна еще с древних времен. Например, в древней Греции для передачи секретного сообщения использовались рабы. Секретное сообщение наносилось на голову обритого раба. Через некоторое время, когда волосы отрастали, раба отправляли к месту назначения. На границе его обыскивали и, ничего не найдя, отпускали. Когда раб приходил в место назначения, ему опять брили голову и читали доставленное секретное сообщение.

Во время второй мировой войны немецкими военными использовались микрофотографии размером с типографскую точку. Такая фотография вклеивалась в обычное письмо и внешне ничем не отличалась от типографской точки. При увеличении микрофотография давала четкое изображение размером с лист бумаги формата А4.

Тогда же применялась следующая сигнальная система. В некоторой квартире на подоконник ставился обычный горшок с цветком. Проходивший на улице человек, которому предназначалось сообщение, смотрел на окно. Наличие цветка могло означать, например, что в квартиру можно заходить (опасности нет), отсутствие - что «явка провалена» (в квартиру заходить нельзя). Посторонний человек, не посвященный в детали такой передачи сообщений, не мог заподозрить факта существования тайного канала связи, так как наличие цветка на подоконнике не было чем-то необычным или подозрительным.

Описаны случаи применения тайнописи при помощи симпатических чернил во времена Российской империи. Например, В.И. Ленин писал молоком секретное сообщение на листе бумаги. После написания такой листок внешне сохранял цвет и не отличался (с точки зрения стороннего наблюдателя) от обычного чистого листа. Впоследствии листок нагревали, например, над пламенем свечи, молоко сворачивалось, и текст становился отчетливо виден.

В научной литературе впервые задача стеганографии была описана в работе Симмонсона [96] и сформулирована следующим образом (см. рисунок 1.1). Имеются двое заключенных (Алиса и Боб), сидящих в разных ячейках камеры. Их задача - обсудить детали плана побега, но так, чтобы охранник (Ева) не заподозрила готовящегося побега. В противном случае их переведут в более охраняемые камеры и побег не удастся. Для организации тайного канала связи Алиса выбирает безобидный на внешний вид объект данных, так называемый контейнер. Затем при помощи методов стеганографии в контейнер встраивается секретное сообщение. Далее контейнер передается Бобу по открытому каналу связи. Ева также может получить и проанализировать передаваемый контейнер. Особенности методов стеганографии не позволяют Еве однозначно определить

(даже после анализа) присутствие или отсутствие секретного сообщения в контейнере. Боб, получив контейнер, может извлечь сообщение и прочитать его. Отметим, что сам факт передачи контейнера не является для Евы чем-то подозрительным.

Рисунок 1.1 - Проблема заключенных по Симмонсу.

Методы стеганографии позволяют встраивать секретное сообщение в цифровые объекты данных (файлы) различного формата (exe, dll, mp3, avi и другие) и типа (изображения, аудио, видео, текстовые и исполняемые файлы). Наиболее распространенным типом контейнера является jpg.

Существуют методы встраивания секретных сообщений, базирующиеся на LSB внедрении. Картинка представляет собой матрицу пикселей, где каждому пикселю соответствует некоторый цвет. В памяти компьютера цвет представлен в виде двоичного числа. Известно, что последний значащий бит цвета практически не влияет на общее изображение картинки (для человеческого глаза). В рамках подхода LSB последний бит цвета может быть заменен на секретное сообщение.

В настоящий момент внедрение осуществляется отдельно в каждую компоненту цвета RGB. Для обеспечения скрытности передачи не проводится внедрение в каждый пиксель, для которого это возможно, а псевдослучайным образом выбирается порядка 1% пикселей, в которые производится внедрение. В настоящий момент активно применяется подход LSB±1. При использовании

данного подхода цвет пикселя либо уменьшается, либо увеличивается на единицу в псевдослучайном порядке. Несмотря на то, что при использовании LSB±1, как и в случае с LSB, последние биты пикселей заменяются секретным сообщением, стегоанализ становится менее эффективным. Например, имеется секретное сообщение «001011» и исходное изображение, представленное двумя пикселями в формате RGB. В таблице 1.1 показан результат внедрения.

Таблица 1.1 - Пример внедрения сообщения методом LSB и LSB±1

Изображение LSB LSB±1

Исходное 10111011 11001110 10100010 10101011 11011110 11110011 10111011 11001110 10100010 10101011 11011110 11110011

С внедрением 10111010 11001110 10100011 10101010 11011111 11110011 10111010 11001110 10100001 10101100 11011101 11110011

Известны методы, основанные на использовании масок и графических фильтров. В работе [14] описан алгоритм, применяемый для внедрения водяного знака в 24-битные и черно-белые изображения. В картинке скрытая информация представляется через обычную надпись на изображении, сделанную посредством изменения яркости пикселей. Как показано на рисунке 1.2, изменение яркости менее чем на 15% почти незаметно для человеческого глаза. Достоинством представленного подхода является устойчивость к искажениям изображения: обрезке, сжатию и изменению качества. В отличии от LSB методов, которые рекомендуется применять в «шумных» областях изображения, рассмотренный алгоритм может быть применен к большему числу областей, в том числе к монотонным фрагментам.

Большая доля изображений, передаваемая в сети Интернет, представлена в формате JPEG. Указанный формат представляет картинку как форму записи пространственного сигнала. Причем оси X и Y сигнала соответствуют осям изображения, а Z соответствует цвету пикселя. Изображение хранится в виде коэффициентов дискретного конусного преобразования.

ЛУШ

Рисунок 1.2 - Внедрение в изображение изменением яркости.

В случае LSB внедрением осуществляется изменение высокочастотных коэффициентов. Во-первых, высокочастотные коэффициенты мало влияют на итоговое изображение, а во-вторых, в соответствии с алгоритмами, коэффициенты изменяются в рамках округления (погрешности) при вычислении сигнала, что также уменьшает долю вносимых искажений. Таким образом, для восприятия человеческого глаза изображение не меняется.

В научной литературе описаны методы встраивания скрытых сообщений в звуковые файлы wav, тр3. При записи непрерывного звукового сигнала применяют принцип дискретизации по времени и квантования по уровню. Сигнал разбивается на отдельные отсчеты (дискреты), и в файл последовательно записываются значения уровней сигнала соответствующих отсчетов. Как и в случае с изображениями, эффективно применяются методы LSB внедрения, описанные выше.

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

не соответствует внедряемому сообщению, то один последний значащий бит одного из отсчетов заменяется случайным образом.

В работе [88] предложен алгоритм встраивания секретных сообщений, базирующийся на линейных хеш-функциях. Подход заключается в изменении бита контейнера так, чтобы рассчитываемая хеш-функция меняла свое значение на передаваемое секретное сообщение. При изменении одного бита аргумента в среднем меняется половина битов значения хеш-функции. Таким образом можно подобрать бит, который даст хеш-функции значение, равное секретному сообщению. Этот подход является перспективным, так как изменение одного бита минимально искажает статистическую структуру контейнера. Следовательно, вероятность обнаружения факта внедрения крайне мала.

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

Еще один этап в развитии стеганографии связан с созданием методов, использующих протоколы передачи данных в сети Интернет. Например, в IP-сетях активно используется протокол ARP, который позволяет связать MAC (media access control) и IP-адреса сетевой карты. Согласно стандартам, данные передаются в виде дейтаграмм, размеры которых должны лежать в диапазоне от 64 байт до 1500 байт. В ряде случаев передаваемые данные имеют меньший размер, поэтому требуется дополнительно дописывать произвольные байты (обычно с нулевыми значениями) в дейтаграмму.

В публикации [10] было показано, что различные реализации драйверов небезопасным образом реализуют дописывание. Например, в оперативной памяти хранится массив данных, который нужно переслать по сети, но его заполнение полезным содержимым осуществляется без предварительной очистки всего массива. В частности, известны случаи, когда это приводило к утечкам ценной информации из оперативной памяти. Более того, в ряде случаев в дейтаграмму дописываются произвольные байты (не нулевые). На основе этого был предложен

метод [107] для передачи скрытых данных, в котором дописываемые байты заменяются на секретное сообщение.

В работе [71] описана технология SkypeHIDE. Данная технология базируется на инфраструктуре программы Skype. Передача секретного сообщения производится через IP-телефонию. Во время передачи речи возникают паузы между словами. Согласно алгоритму, вместо «пакетов тишины» можно передавать секретное сообщение. Так как проходящий трафик в сети шифруется, то стороннему наблюдателю невозможно понять, что именно передается. Предложенная технология позволяет передавать сообщение со скоростью 2 Кбит/сек.

В работе [44] предложен метод передачи секретных сообщений, основанный на протоколе передачи с управлением потоком. Особенностью протокола является возможность параллельной передачи данных по нескольким независимым потокам сообщений. Согласно алгоритму, каждый поток соответствует одному или нескольким битам передаваемого сообщения. Произвольные данные передаются частями по одному из потоков, который выбирается в соответствии со скрываемым сообщением. Например, необходимо передать сообщение 001011. В наличии четыре потока (№1-4), которые соответствуют битам «00», «01», «10» и «11» секретного сообщения. Первый фрагмент передается по потоку №1, второй -по потоку №3 и третий — по потоку №4. Таким образом реализуется тайный канал связи.

Известен широкий класс методов, базирующихся на IP-телефонии, которые описаны, например, в работе [55]. Передаваемые видео или голос могут быть предварительно обработаны специально подобранным кодировщиком (кодеком). Кодировщик позволяет сжимать передаваемые данные с незначительной потерей качества, то есть с сохранением QoS (quality of service). Освободившееся место может быть использовано для передачи секретного сообщения.

Известны методы стеганографии применяющие закономерности теории хаотических систем и теории чисел для защиты информации, например [124]. Скрытое сообщение равномерно встраивается в контейнер. В качестве маркеров

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

В статье [86] дается определение цифрового водяного знака, «Цифровой водяной знак - это идентификационный код, перманентно встроенный в цифровые данные, который может нести информацию о правообладателе, создателе, авторизованном потребителе и т. д.». Встроенное сообщение (цифровой водяной знак, ЦВЗ) может содержать, например, паспортные данные автора. При обнаружении стороннего продукта, который несанкционированно использует защищенный файл, возможно извлечение ЦВЗ в ходе судебных разбирательств. Таким образом будет установлен истинный автор, подробнее [114].

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

Очевидно, что одним из требований к таким методам внедрения является устойчивость к искажению контейнера. В противном случае злоумышленник будет перезаписывать файл произвольным сообщением, что позволит нивелировать защиту. Например, группа злоумышленников объединилась в коалицию для сравнения своих лицензионных копий программ. Выявленные отличия позволят найти место хранения цифрового отпечатка пальца, который затем будет целенаправленно удален. В настоящий момент существуют специализированные коды отпечатков пальцев, например, Tardos-коды, позволяющие с высокой вероятностью выявить одного злоумышленника из коалиции.

Проблемами стеганографии занималось множество отечественных (Беззатеев С. В., Грибунин В. Г., Довгаль В. М., Кабатянский Г. А., Конахович Г. Ф., Мещеряков Р. В., Оков И. Н., Пузыренко А. Ю., Туринцев И. В.) и зарубежных ученых (Cachin C., Chen X., Collberg C., Fridrich J., Ker A., Simmons G., Thomborson C., Wang X., Xiang L., Yang C.). Известна сибирская школа,

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

Настоящая диссертация посвящена разработке методов встраивания цифровых водяных знаков в исполняемые файлы. Под исполняемым файлом понимается программа, представляемая в форматах: Portable Executable (Windows) и ELF (Linux). Учитывая, что исполняемый файл представляет собой набор данных разного типа (код, мультимедиа и иные типы данных), для встраивания ЦВЗ могут применяться методы текстовой, аудио- и видеостеганографии.

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

Внедрение информации в текст осуществляется разными способами. Наиболее популярными на сегодняшний день являются класс методов замены синонимов и методы генерации искусственного текста. Например, в тексте присутствуют слова, имеющие синонимы. При внедрении указанные слова заменяются эквивалентными синонимами в соответствии со скрываемым сообщением. Смысл текста не меняется, так как изменению подвергается только форма его записи.

Известны методы генерирования искусственного текста по заданным правилам грамматики. Полученный текст лишен смысла и может быть обнаружен человеком при чтении, но в силу большого объема данных в сети Интернет такой анализ требуется проводить с помощью компьютеров, что не всегда представляется возможным.

В зависимости от назначения, скрытые сообщения, внедряемые в исполняемые файлы, подразделяют на цифровые отпечатки пальцев и цифровые

водяные знаки. Цифровые отпечатки пальцев предназначены для идентификации конечного пользователя. Водяные знаки, напротив, служат для идентификации автора/создателя исполняемого файла или отдельных модулей программы.

Цифровые водяные знаки подразделяются на статические и динамические. Статические методы встраивания применяют строковые и числовые константы для размещения водяного знака. Фрагменты неиспользуемого кода - так называемый «мертвый код» — используются для размещения секретного сообщения в закодированном виде. Известны методы, например [77], при которых сообщение хранится в неиспользуемых областях исполняемых файлов. Для программ существуют подходы, аналогичные методу замены синонимов текста, которые заключаются в сохранении семантики алгоритма при замене способа кодогенерации [42, 52].

Существует другая классификация [64], согласно которой цифровые водяные знаки подразделяются на устойчивые, хрупкие и полухрупкие. Устойчивые (робастные) водяные знаки не чувствительны к большинству искажений контейнера. Хрупкие и полухрупкие водяные знаки, напротив, способны выявить искажение контейнера. Хрупкие ЦВЗ применяются в задачах контроля целостности программного обеспечения. Например, злоумышленник намеренно исказил программу с целью кражи паролей других пользователей. Наличие водяного знака позволит сигнализировать о его разрушении и об опасности использования искаженного программного продукта. В ряде случаев допускается внесение искажений самим автором в рамках исправления ошибок. Доля разрешенных искажений учитывается в полухрупком ЦВЗ, который разрушается при заданном пороге изменений в программе [22].

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

повысит общую энтропию контейнера, что создаст угрозу эффективного стегоанализа.

Известна теория совершенно стойких стегосистем, заключающаяся в статистической неразличимости контейнера до и после внедрения. Считается, что использование таких методов внедрения делает стегоанализ невозможным. Однако указанная концепция базируется на представлении о контейнере как о порождении некоторого стационарного и эргодического временного источника. Реальные же контейнеры не могут рассматриваться в таких рамках, так как обладают некоторым семантическим наполнением. Более того, на сегодняшний день не существует ни одной модели контейнеров (для любого типа данных), полностью описывающих их свойства.

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

Цели и задачи исследования. Разработка устойчивых методов и алгоритмов встраивания цифровых водяных знаков, применяемых для исполняемых файлов.

В соответствии с поставленной целью определены следующие задачи:

1. Разработка метода стегоанализа динамических цифровых водяных знаков.

2. Разработка методов встраивания цифровых водяных знаков в исполняемые файлы.

3. Разработка методов встраивания скрытой информации в текст и графы.

4. Разработка метода считывания цифрового водяного знака.

Объектом исследования являются методы цифровой стеганографии для текста и исполняемого кода.

Предметом исследования являются алгоритмы внедрения цифровых водяных знаков в исполняемые файлы.

Научная новизна.

1. Впервые показана уязвимость динамических водяных знаков, построенных по схеме Яа&х-п. Предложена модификация алгоритма, позволяющая повысить скрытность внедрения.

2. Предложен подход к внедрению полухрупких ЦВЗ, которые рассматривают программу как форму записи сигнала. Разложение сигнала в спектр Фурье позволяет отслеживать искажение сигнала, пропорциональное добавленным командам. Предыдущие подходы, базировавшиеся на криптографических хеш-функциях и контрольных суммах, не позволяли определить объем новых команд в программе.

3. Разработан метод внедрения хрупких ЦВЗ для применения коллективом соавторов. Предыдущие решения предполагали использование систем электронной цифровой подписи, которые требуют больше места для хранения и обслуживания соответствующей инфраструктуры.

4. Для считывания ЦВЗ в исполняемом файле предложен метод, который является расширением подхода непрозрачных предикатов и затрудняет использование отладочных средств при реверс-инжиниринге.

5. Разработан метод стегоанализа текстовых данных, полученных кодированием длин серий синонимов, который базируется на статистическом анализе распределения последовательностей одинаковых битов.

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

7. Предложены методы автоматического построения алфавитного меню и встраивания скрытых данных в его иерархию.

8. Предложен метод, позволяющий хранить ЦВЗ произвольного размера вне исполняемого файла, в частности в графах социальных сетей.

Теоретическая значимость работы заключается в разработке новых методов встраивания секретных сообщений, применяемых в исполняемых файлах, тексте и графах. Предложены новые методы стегоанализа для известных ранее алгоритмов внедрения. Разработан новый подход к реализации полухрупких ЦВЗ, базирующийся на представлении программы в виде сигнала.

Практическая значимость работы заключается в создании методов и программного обеспечения, позволяющих встраивать цифровые водяные знаки в различные типы данных исполняемых файлов: текст, программный код, графы. Эти методы позволяют эффективно защищать исполняемые файлы как объекты авторского права. Предложен механизм считывания ЦВЗ из контейнера. В исследовании показаны уязвимости известных ранее методов внедрения скрытых данных и ЦВЗ. Основные этапы исследования выполнены в рамках государственных заданий [151-154]. Получено пять свидетельств о регистрации программ для ЭВМ. Получены акты о внедрении результатов исследования в учебный процесс и в коммерческие организации, специализирующиеся на создании программного обеспечения.

Методология и методы диссертационного исследования. В диссертационной работе применялись методы теории информации, теории вероятностей и математической статистики.

Положения, выносимые на защиту:

1. Существующие методы динамических ЦВЗ не обладают скрытностью. Для повышения скрытности следует отказаться от указателей в динамических структурах данных;

2. Представление программы в виде сигнала позволяет реализовать метод внедрения полухрупких ЦВЗ. Изменения в программе пропорционально меняют спектр сигнала, что при контроле целостности позволяет задавать порог разрешенных искажений;

3. Повышение устойчивости хрупких ЦВЗ для применения коллективом соавторов достигается посредством создания математической взаимосвязи внедряемых данных;

4. Повышение скрытности считывания ЦВЗ в исполняемом файле достигается через рандомизацию считывания ЦВЗ и затруднение использования отладочных точек остановки;

5. Метод текстового встраивания ЦВЗ кодированием длин серий синонимов в текст не является скрытным. Разработан устойчивый метод встраивания скрытых сообщений в текстовые данные;

6. Увеличение объема внедрения в контейнер достигается при помощи использования ссылок на внешние хранилища/базы данных и алфавитного меню. Перед внедрением меню должно быть оптимизировано.

Степень достоверности результатов работы. Обоснованность и достоверность результатов исследования подтверждается результатами проведенных экспериментов на реальных данных и фактом публикации научных работ по теме диссертации в рецензируемых изданиях.

Апробация результатов. Основные результаты работы докладывались и обсуждались на международных и всероссийских научных конференциях, в том числе на следующих международных конференциях: IEEE Siberian Symposium on Data Science and Engineering (SSDSE-2017, г. Новосибирск), IEEE International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON - 2017,2019, г. Новосибирск), 14th International Scientific-Technical Conference on Actual Problems of Electronics Instrument Engineering (APEIE-2018, г. Новосибирск), Mathematical and Informational Technologies (2016, г. Белград); а также на российских конференциях: Современные проблемы телекоммуникаций (2017, г. Новосибирск), Наука, Технологии, Инновации (2016, г. Новосибирск), Обработка информации и математическое моделирование (2015, г. Новосибирск), Распределенные информационно-вычислительные ресурсы. Наука - цифровой экономике (DICR-2017), Перспективные информационные

Похожие диссертационные работы по специальности «Теоретические основы информатики», 05.13.17 шифр ВАК

Список литературы диссертационного исследования доктор наук Нечта Иван Васильевич, 2021 год

Список литературы

1. Tightly-coupled selfdebugging software protection [Text] / B. Abrath, B. Coppens, B. Volckaert [et al.] // In Proceedings of the 6th Workshop on Software Security, Protection, and Reverse Engineering, SSPREW '16. - New York, NY, USA : ACM, 2016. - P. 7.

2. Adelsbach, A. Advanced techniques for dispute resolving and authorship proofs on digital works [Text] / A. Adelsbach, A. R. Sadeghi// Security and Watermarking of Multimedia Contents V. - [S. l.] : International Society for Optics and Photonics, 2003.

- Vol. 5020. - P. 677-688.

3. Ahlström, D. Modeling and improving selection in cascading pull-down menus using Fitts' law, the steering law and force fields [Text] / D. Ahlström // Proceedings of the SIGCHI conference on Human factors in computing systems. - [S. l.] : ACM, 2005.

- P. 61-70.

4. Why it's quick to be square: modeling new and existing hierarchical menu designs [Text] / D. Ahlström, A. Cockburn, C. Gutwin [et al.] // Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. - [S. l.] : ACM, 2010. - P. 1371-1380.

5. Practical Integrity Protection with Oblivious Hashing / M. Ahmadvand, A. Hayrapetyan, S. Banescu [et al.] // Proceedings of the 34th Annual Computer Security Applications Conference. - [S. l.] : ACM, 2018. - P. 40-52.

6. Ahmadvand, M. A taxonomy of software integrity protection techniques [Text] / M. Ahmadvand, A. Pretschner, F. Kelbert // Advances in Computers. - [S. l.] : Elsevier, 2019. - V. 112. - P. 413-486.

7. Alexander, G. Gounares Fingerprinting Executable Code / G. Alexander // Patent US20120317421 A1, 19.07.2012.

8. Allport, F.H. Theories of perception and the concept of structure [Text] / F.H. Allport. - N.Y. : John Wiley and Sons, 1955. - 709 p.

9. Steganography for executables and code transformation signatures [Text] /

B. Anckaert, B. De Sutter, D. Chanet [et al.] // International Conference on Information Security and Cryptology. - Berlin, Heidelberg : Springer, 2004. - P. 425-439.

10. Arkin, O. Etherleak: Ethernet frame padding information leakage [Text]. - 2003.

— URL: http://www.ouah.org/atstake_etherleak_report.pdf

11. Natural language watermarking: Design, analysis, and a proof-of-concept implementation [Text] / M. J. Atallah, V. Raskin, M. Crogan [et al.] // Information Hiding. - Berlin, Heidelberg : Springer, 2001. - P. 185-200.

12. Atoum, M. S. A Comparative Study of Combination with Different LSB Techniques in MP3 Steganography [Text] / M. S. Atoum // Information Science and Applications. - Heidelberg, Berlin : Springer, 2015. - P. 551-560.

13. Balachandran, V. Potent and Stealthy Control Flow Obfuscation by Stack Based Self-Modifying Code [Text] / V. Balachandran, S. Emmanuel // IEEE Transactions on Information Forensics and Security. - [S. l. : s. n.], 2013. - Vol. 8, no. 4. - P. 669-681.

14. A tutorial review on steganography [Text] / S.K. Bandyopadhyay, D. Bhattacharyya, D. Ganguly [et. al.] // In International conference on contemporary computing. - [S. l. : s. n.], 2008. - Vol. 101. - P. 105-114.

15. Detecting patching of executables without system calls [Text] / S. Banescu, M. Ahmadvand, A. Pretschner [et al.] // In Proceedings of the Conference on Data and Application Security and Privacy. - [S. l.] : ACM, 2017. - P. 185-196.

16. Banescu, A. Code obfuscation against symbolic execution attacks [Text] / S. Banescu, C. Collberg, V. Ganesh [et al.] // In Proceedings of the 32nd Annual Conference on Computer Security Applications, - [S. l.] : ACM, 2016. - P. 189-200.

17. Baumann, A. Shielding applications from an untrusted cloud with haven [Text] / A. Baumann, M. Peinado, G. Hunt // ACM Transactions on Computer Systems (TOCS).

- [S. l. : s. n.], 2015. - Vol. 33, no. 3. - P. 8.

18. Behera, C. K. Different obfuscation techniques for code protection [Text] /

C. K. Behera, D. L. Bhaskari // Procedia Computer Science. - [S. l. : s. n.], 2015. - Vol. 70. - P. 757-763.

19. Benedicks, M. On Fourier transforms of functions supported on a set of finite Lebesgue measure [Text] / M. Benedicks // Journal of Mathematical Analysis and Applications. - 1985. - Vol. 106. - P. 180-183.

20. Bennett, K. Linguistic Steganography [Text] / K. Bennett // Center for education and research in information assurance and security, department of linguistics purdue university west laffayette in. - 2004. - Vol. 47906.

21. Blietz, B., A. Tyagi Software tamper resistance through dynamic program monitoring. [Text] / B. Blietz, A. Tyagi // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 3919 LNCS. - [S. l. : s. n.], 2006. - P. 146-163.

22. Efficient patching / A. Blumfield, G. Golan, J. Garms, S. Alshibani, S. A. Field // Patent US8.539.469 B2, 2013.

23. Chapman, M. Hiding the hidden: A software system for concealing ciphertext as innocuous text [Text] / M. Chapman, G. Davida // International Conference on Information and Communications Security. - Berlin, Heidelberg : Springer, 1997. - P. 335-345.

24. Towards an understanding of anti-virtualization and anti-debugging behavior in modern malware [Text] / X. Chen, J. Andersen, Z. M. Mao [et al.] // 2008 IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN), - [S. l.] : IEEE, 2008. - P. 177-186.

25. Oblivious hashing: A stealthy software integrity verification primitive [Text] / Y. Chen, R. Venkatesan, M. Cary [et al.] // In International Workshop on Information Hiding. - [S. l.] : Springer, 2002. - P. 400-414.

26. Chen, Z. Semantic-integrated software watermarking with tamper-proofing [Text] / Z. Chen, Z. Wang, C. Jia // Multimedia Tools and Applications. - 2018. - Vol. 77, no. 9. - P. 11159-11178.

27. Cockburn, A. A predictive model of menu performance [Text] / A. Cockburn, C. Gutwin, S. Greenberg // Proceedings of the SIGCHI conference on Human factors in computing systems. - [S. l.] : ACM, 2007. - P. 627-636.

28. Collberg, C. Error-correcting graphs for software watermarking [Text] / C. Collberg, S. Kobourov, E. Carter [et al.] // Proceedings of the 29th workshop on graph theoretic concepts in computer science. - Elspeet, The Netherlands : Springer, 2003. - P. 156-167.

29. Collberg, C. Software watermarking in the frequency domain: implementation, analysis, and attacks [Text] / C. Collberg, T. R. Sahoo // Journal of Computer Security. -2005. Vol. 13, no. 5. - P. 721-755.

30. Collberg, C. Software watermarking: Models and dynamic embeddings [Text] / C. Collberg, C. Thomborson // Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. - [S. l.] : ACM, 1999. - P. 311324.

31. Watermarking, Tamper-proofing and Obfuscation - Tools for Software protection [Text] : Rep. : 170. / University of Auckland, Aucland, New Zealand; Executor: C. Collberg, C. Thomborson : February 10, 2000.

32. Taxonomy of Obfucating Transformations [Text] : Rep. : N148 / Department of Computer Science. The University of Auckland; Executor: C. Collberg, C. Thomborson, D. A. Low : July, 1997.

33. Cover, T.M. Elements of information theory [Text] / T.M. Cover, J.A. Thomas. -N.Y. : Wiley-Interscience, 2006. - 776 p.

34. Choice and stimulus-response compatibility affect duration of response selection [Text] / P. Dassonville, S. M. Lewis, H. E. Foster [et al.] // Cognitive Brain Research. - 1999. - no. 7(3). - P. 235-240.

35. Dedic, N. A graph game model for software tamper protection [Text] / N. Dedic, M. Jakubowski, R. Venkatesan // International Workshop on Information Hiding. -Berlin, Heidelberg : Springer, 2007. - P. 80-95.

36. A hypervisor-based system for protecting software runtime memory and persistent storage [Text] / P. Dewan, D. Durham, H. Khosravi [et al.] // Proceedings of the 2008 Spring simulation multiconference. Society for Computer Simulation International. - [S. l. : s. n.], 2008. - P. 828-835.

37. Dey, A. Software watermarking: Progress and challenges [Text] / A. Dey, S. Bhattacharya, N. Chaki // INAE Letters. - 2019. - Vol. 4, no. 1. - P. 65-75.

38. Diwakar, A.K. End user privacy preservation in social networks against neighborhood attack [Text] / A.K. Diwakar, N.K. Singh, D.S. Tomar // Asia Security and Privacy (ISEASP). - [S. l.] : IEEE, 2017. - P. 1-9.

39. Building the IBM 4758 secure coprocessor [Text] / J. G. Dyer, M. Lindemann, R. Perez [et al.] // IEEE Computer. - [S. l.] : IEEE, 2001. - Vol. 34, no. 10. - P. 57-66.

40. Eilam, E. Reversing: secrets of reverse engineering. - John Wiley & Sons, 2011.

41. Ernst, M. D. Static and dynamic analysis: Synergy and duality [Text] / M. D. Ernst // ICSE Workshop on Dynamic Analysis. - [S. l. : s. n.], 2003. - P. 24-27.

42. Fionov, A. Digital watermarks for C/C++ programs [Text] / A. Fionov // 7th conference of Finnish-Russian University Cooperation in Telecommunications.

- St.-Petersburg : [s. n.], 2010. - P. 30-36.

43. Fitts, P.M. The information capacity of the human motor system in controlling the amplitude of movement [Text] / P.M. Fitts // Journal of Experimental Psychology. - 1954.

- Vol. 47(6). - P. 381-391.

44. Fraczek, W. Stream Control Transmission Protocol Steganography [Text] / W. Fraczek, W. Mazurczyk, K. Szczypiorski // 2010 International Conference on Multimedia Information Networking and Security. - [S. l.] : IEEE, 2010. - P. 829834.

45. Fridrich, J. Practical steganalysis of digital images: state of the art [Text] / J. Fridrich, M. Goljan // 4th International Society for Optics and Photonics Security and Watermarking of Multimedia Contents. - [S. l. : s. n.], 2002. - Vol. 4675. - P. 1-13.

46. Gautam, P. A Novel Software Protection Approach for Code Obfuscation to Enhance Software Security [Text] / P. Gautam, H. Saini // International Journal of Mobile Computing and Multimedia Communications (IJMCMC). - [S. l. : s. n.], 2017.

- Vol. 8, no. 1. - P. 34-47.

47. Gibson, J.J. The ecological approach to visual perception [Text] / J. J. Gibson. -Boston : Houghton Miffin, 1986. - 332 p.

48. Hiding information in java class file [Text] / D. Gong, F. Liu, B. Lu [et al.] // 2008 International Symposium on Computer Science and Computational Technology. - [S. l.] : IEEE, 2008. V. 2. P. 160-164.

49. Translation-based steganography [Text] / C. Grothoff, K. Grothoff, L. Alkhutova, [et al.] // International Workshop on Information Hiding. - Berlin, Heidelberg : Springer, 2005. - P. 219-233.

50. Guha, S., NOYB: Privacy in online social networks [Text] / S. Guha, K. Tang, P. Francis // Proceedings of the first workshop on Online social networks. - [S. l.] : ACM, 2008. - P. 49-54.

51. Hai, N. M. Packer identification based on metadata signature [Text] / N. M. Hai, M. Ogawa, Q. T. Tho // Proceedings of the 7th Software Security, Protection, and Reverse Engineering/Software Security and Protection Workshop. - [S. l.] : ACM, 2017. - P. 1-11. doi:10.1145/3151137.3160687

52. Hamilton, J. A survey of static software watermarking [Text] / J. Hamilton, S. Danicic //2011 World Congress on Internet Security. - [S. l.] : IEEE, 2011. - P. 100-107.

53. Hick, W.E. On the rate of gain of information [Text] / W.E. Hick // Quarterly Journal of Experimental Psychology. - 1952. - no. 4. - P. 11-26.

54. Jacob, M. Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings [Text] / M. Jacob, M. H. Jakubowski, R. Venkatesan // In Proceedings of the 9th workshop on Multimedia & security. - [S. l.] : ACM, 2007. - P. 129-140.

55. Janicki, A. Steganalysis of transcoding steganography [Text] / A. Janicki, W. Mazurczyk, K. Szczypiorski // Annals of telecommunications-annales des télécommunications. - [S. l. : s. n.], 2014. - Vol. 69, no. 7-8. - P. 449-460.

56. Judge, J. C. Steganography: past, present, future [Text] / J. C. Judge. - Lawrence Livermore National Lab: [S. n.], 2001. - URL: http://ms11.voip.edu.tw/~eddie/file/Steganography_Past_Present_Future.pdf (accessed: 27.11.2019).

57. Obfuscator-LLVM software protection for the masses [Text] / P. Junod, J. Rinaldini, J. Wehrli [et al.] // 2015 IEEE/ACM 1st International Workshop on Software Protection. - [S. l.] : IEEE, 2015. - P. 3-9.

58. Kiger, J. I. The depth/breadth trade-off in the design of menu-driven user interfaces [Text] / J. I. Kiger // International journal of man-machine studies. - 1984. -Vol. 20, no. 2. - P. 201-213.

59. Koluguri, A. Text steganography methods and its tools [Text] / A. Koluguri, S. Gouse, P. B.Reddy // International Journal of Advanced Scientific and Technical Research. - 2014. - Vol. 2, no. 4. - P. 888-902.

60. Kullback, S. Information Theory and statistics [Text] / S. Kullback. - N. Y.: Dover Publications, 1997. - 399 p.

61. Lee, E. Minimizing user search time in menu retrieval systems [Text] / E. Lee, R. Macgregor // Human factors. Vol. 27(2). - 1985, - P.157-162.

62. Leonard, J.A. Tactual choice reactions. I [Text] / J.A. Leonard // Quarterly Journal of Experimental Psychology. - 1959. - no. 11. - P. 76-83.

63. Likarish, P. Obfuscated malicious javascript detection using classification techniques [Text] / P. Likarish, E. Jung, I. Jo // 2009 4th International Conference on Malicious and Unwanted Software (MALWARE), - [S. l.] : IEEE, 2009. - P. 47-54.

64. Lin, E. T. Detection of image alterations using semifragile watermarks [Text] / E. T. Lin, C.I. Podilchuk, E. J. Delp // 2th International Society for Optics and Photonics Security and Watermarking of Multimedia Contents. - [S. l. : s. n.], 2000. - Vol. 3971. -P. 152-163.

65. Linn, C. Obfuscation of executable code to improve resistance to static disassembly [Text] / C. Linn, S. Debray // Proceedings of the 10th ACM conference on Computer and communications security. - [S. l.] : ACM, 2003. - P. 290-299.

66. LSB steganographic payload location for JPEG-decompressed images [Text] / J. Liu, Y. Tian, T. Han [et al.] // Digital Signal Processing. - [S. l.] : Elsevier, 2015. -Vol. 38. - P. 66-76.

67. Steganalysis of HUGO steganography based on parameter recognition of syndrome-trellis-codes Text / X. Luo, X. Song, X. Li [et al.] // Multimedia Tools and Applications. - 2016. - Vol. 75, no. 21. - P. 13557-13583.

68. Xmark: Dynamic Software Watermarking using Collatz Conjecture [Text] / H. Ma, C. Jia, S. Li [et al.] // IEEE Transactions on Information Forensics and Security.

- 2019. - Vol. 14, no. 11. - P. 2859-2874.

69. Madou Software protection through dynamic code mutation [Text] / M. Madou,

B. Anckaert, P. Moseley [et al.] // In International Workshop on Information Security Applications, - [S. l.] : Springer, 2005. - P. 194-206.

70. Matsui, S. Optimizing hierarchical menus by genetic algorithm and simulated annealing [Text] / S. Matsui, S. Yamada // Proceedings of the 10th annual conference on Genetic and evolutionary computation. - [S. l.] : ACM, 2008. - P. 15871594.

71. Mazurczyk, W. SkyDe: a Skype-based steganographic method [Text] / W. Mazurczyk, M. Karas, K. Szczypiorski // International Journal of Computers, Communications & Control (IJCCC). - 2013. - Vol. 8, no. 3. - P. 389-400.

72. Natural language watermarking via morphosyntactic alterations [Text] / H. M. Meral, B. Sankur, A. S. Özsoy [et al.] // Computer Speech & Language. - 2009. -Vol. 23, no. 1. - P. 107-125.

73. Monden, A. A practical method for watermarking java programs [Text] / A. Monden, H. Iida, K. I. Matsumoto [et al.] // Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000. - [S. l.] : IEEE, 2000. - P. 191-197.

74. Design and implementation of a hardware assisted security architecture for software integrity monitoring [Text] / B. Morgan, E. Alata, V. Nicomette [et al.] // IEEE 21st Pacific Rim International Symposium on Dependable Computing (PRDC).

- [S. l.] : IEEE, 2015. - P. 189-198.

75. Moser, A. Limits of static analysis for malware detection [Text] / A. Moser,

C. Kruegel, E. Kirda // Computer security applications conference, 2007. - [S. l.] : IEEE, 2007. - P. 421-430.

76. CISSKA-L SB : color image steganography using stego key-directed adaptive L SB substitution method [Text] / K. Muhammad, J. Ahmad, N. Rehman [et al.] // Multimedia Tools and Applications. - [S. l.] : Springer, 2017. - Vol. 76, no. 6. - P. 8597-8626.

77. Naji, A. W. Challenges of hidden data in the unused area two within executable files [Text] / A. W. Naji, A. A. Zaidan, B. B. Zaidan // Journal of Computer Science. -2009. - Vol. 5, no. 11. - P. 890.

78. Nechta, I. V. New steganalysis method for text data produced by synonym run-length encoding [Text] / I. V. Nechta // Proceedings 14th International Scientific-Technical Conference on Actual Problems of Electronics Instrument Engineering (APEIE). - Novosibirsk : [S. n.], 2018. Vol. 1, part 2. - P. 188-190.

79. Nechta, I. Robustness analysis for dynamic watermarks [Text] / I. Nechta // International Multi-Conference on Engineering, Computer and Information Sciences (IEEE, SIBIRCON). - Novosibirsk : [S. n.], 2017. - P. 298-300. doi: 10.26583/bit.2017.2.08

80. Nechta, I. Steganography in Social Networks [Text] / I. Nechta // IEEE Siberian Symposium on Data Science and Engineering (SSDSE), - Technopark of Novosibirsk Akademgorodok : [S. n], 2017. - P. 33-35. doi:10.1109/SSDSE.2017.8071959

81. Nechta, I. Steganographic message transformation with the partial antidisturbance property [Text] / I. Nechta // 2019 International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON). - Novosibirsk : [S.n.], 21-22 Oct, 2019. P. 967 - 971.

82. Nematollahi, M. A. Software Watermarking [Text] / M. A. Nematollahi, C. Vorakulpipat, H. G. Rosales // Digital Watermarking. - Singapore : Springer, 2017. - P. 131-144.

83. Newman, M. E. J. Power laws, Pareto distributions and Zipfs law [Text] / M. E. J. Newman // Contemporary physics. - 2005. - Vol. 46, no. 5. - P. 323-351.

84. Nilizadeh, S. Community-enhanced de-anonymization of online social networks [Text] / S. Nilizadeh, A. Kapadia, Y.Y. Ahn // Proceedings of the 2014 acm sigsac conference on computer and communications security. - [S. l.] : ACM, 2014. - P. 537548.

85. TGVisor: A tiny hypervisor-based trusted geolocation framework for mobile cloud clients [Text] / S. Park, J. N. Yoon, C. Kang // 3rd IEEE International Conference

on Mobile Cloud Computing, Services, and Engineering, - [S. l.] : IEEE, 2015.

- P. 99-108.

86. DCT-based watermark recovering without resorting to the uncorrupted original image [Text] / A. Piva, M. Barni, F. Bartolini [et al.] // Proceedings of international conference on image processing. - [S. l.] : IEEE, 1997. - Vol. 1. - P. 520-523.

87. Identifying and Understanding Self-Checksumming [Text] / J. Qiu, B. Yadegari, B. Johannesmeyer [et al.] // Defenses in Software. - 2015. - P. 207-218.

88. Rajan, H. Tisa: Toward trustworthy services in a service-oriented architecture [Text] / H. Rajan, M. Hosamani // IEEE Transactions on Services Computing. - [S. l.] : IEEE, 2008. - Vol. 1, no. 4. - P. 201-213.

89. Ryabko, B. Information-Theoretic Approaches to Steganography: Latest Achievements [Text] / B. Ryabko, A. Fionov, K. Eltysheva [et al.] // Proceedings XII International Symposium on Problems of Redundancy in Information and Control Systems. - St. Peretburg : [S. n.], 2009. - P. 196-197.

90. Ryabko, B. Linear Hash Functions as a Means of Distortion - Rate Optimization in Data Embedding [Text] / B. Ryabko, A. Fionov // Proceedings of IHandMMSec 19,

- Paris, France: ACM, 2019. - P. 235-238.

91. Savina, N. Applications of Information Theory and Psychology Laws to Optimization of Internet Search [Text] / N. Savina, B. Ryabko, I. Nechta // Mathematical and Informational Technologies MIT-2016. - Beograd : [S. n.], 2016. - P. 139-140.

92. Protecting software through obfuscation: Can it keep pace with progress in code analysis? [Text] / S. Schrittwieser, S. Katzenbeisser, J. Kinder // ACM Computing Surveys (CSUR). - 2016. - Vol. 49, no. 1. - P. 4.

93. Shannon, C. E. A mathematical theory of communication [Text] / C. E. Shannon // Bell System Technical Journal. - 1948. - Vol. 27(3). - P. 379-423.

94. Sharad, K. True friends let you down: Benchmarking social graph anonymization schemes [Text] / K. Sharad // Proceedings of the 2016 ACM Workshop on Articial Intelligence and Security. - [S. l.] : ACM, 2016. - P. 93-104.

95. Shrestha, S. Eye gaze patterns while searching vs. browsing a Website [Text] / S. Shrestha, K. Lenz // Usability News. - 2007. - Vol. 9, no. 1. - P. 1-9.

96. Simmons, G.J. The prisoners problem and the subliminal channel [Text] / G. J. Simmons // In Advances in Cryptology Proceedings of Crypto 83. - [S. l. : s. n.], 1984. - P. 51-67.

97. Smith, S. W. Building a high-performance, programmable secure coprocessor [Text] / S. W. Smith, S. Weingart // Computer Networks. - [S. l. : s. n.], 1999. - Vol. 31, no. 8. - P. 831-860.

98. Lost in just the translation [Text] / R. Stutsman, C. Grothoff, M. Atallah [et al.] // Proceedings of the 2006 ACM symposium on Applied computing. - [S. l.] : ACM, 2006.

- P. 338-345.

99. Topkara, M. Natural language watermarking [Text] / M. Topkara, C. M. Taskiran, E. J. Delp // 7th. International Society for Optics and Photonics Security, Steganography, and Watermarking of Multimedia Contents. [S. l. : s. n.], 2005. - Vol. 5681. - P. 441452.

100. Touili, T. Reachability Analysis of Self Modifying Code [Text] / T. Touili, X. Ye // 2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS). - [S. l.] : IEEE, 2017. - P. 120-127.

101. Tsandilas, T. Bubbling menus: a selective mechanism for accessing hierarchical drop-down menus [Text] / T. Tsandilas, M.C. Schraefel // Proceedings of the SIGCHI conference on Human factors in computing systems. - [S. l.] : ACM, 2007. - P. 11951204.

102. Van Oorschot, P. C. Hardware-assisted circumvention of selfhashing software tamper resistance [Text] / P. C.Van Oorschot, A. Somayaji, G. Wurster // IEEE Transactions on Dependable and Secure Computing, - [S. l.] : IEEE, 2005. Vol. 2, no. 2.

- P. 82-92.

103. Vijayvargiya, A. Writing Windows Debugger - Part 2 [Text]. - URL: https://www.codeproject.com/Articles/132742/Writing-Windows-Debugger-Part-3 (accessed: 06.05.2019).

104. Exception handling-based dynamic software watermarking [Text] / Y. Wang, D. Gong, B. Lu [et al.] // IEEE Access. - 2018. - Vol. 6. - P. 8882-8889.

105. Winstein, K. Lexical steganography. - 1999. [Electronic resource]. - URL: http://web.mit.edu/keithw/tlex/ (accessed: 20.01.2018).

106. Witten, I.H. On frequency-based menu-splitting algorithms [Text] / I. H. Witten, J. G. Cleary, S. Greenberg // Intern. Journal of Man-Machine Studies. - 1984. - Vol. 21, no. 2. - P. 135-148.

107. Wolf, M. Covert channels in LAN protocols [Text] / M. Wolf // Local Area Network Security Workshop. - Berlin, Heidelberg : Springer, 1989. - P. 89-101.

108. Visually guided, aimed movements can be unaffected by stimulus-response uncertainty [Text]/ C. E. Wright, V. F. Marino, S. A. Belovsky [et al.] // Experimental Brain Research. - 2007. - No. 179. - P. 475-496.

109. X86 Opcode and Instruction Reference [Electronic resource]. - URL: http://ref.x86asm.net/coder32.html (accessed: 06.05.2019).

110. Reversible natural language watermarking using synonym substitution and arithmetic coding [Text] / L. Xiang, Y. Li, W. Hao [et al.] // Computers, Materials and Continua. - 2018. - V. 55, no. 3. - P. 541-559.

111. Linguistic steganalysis using the features derived from synonym frequency [Text] / L. Xiang, X. Sun, G. Luo [et al.] // Multimedia tools and applications. - 2014. - Vol. 71, no. 3. - P. 1893-1911.

112. A novel linguistic steganography based on synonym run-length encoding [Text] / L. Xiang, X. Wang, C. Yang // IEICE transactions on Information and Systems. - 2017. - Vol. 100, no. 2. - P. 313-322.

113. Xu, D. Generalized dynamic opaque predicates: A new control flow obfuscation method [Text] / D. Xu, J. Ming, D. Wu // International Conference on Information Security. - Cham : Springer, 2016. - P. 323-342.

114. Yarmolik, V.N. State of the ART in Software Ownership Protection [Text] / V.N. Yarmolik, S.S. Portyanko // Computer Information Systems and Industrial Management - Bialystok, Poland : [S. n.], 2003. - P. 188-195.

115. Novel approach for high (secure and rate) data hidden within triplex space for executable file [Text] / A. A. Zaidan, B.B. Zaidan, O.H. Alanazi [et al.] // Scientific Research and Essays. - [S. l. : s. n.], 2010. - Vol. 5, no. 15. - P. 1965-1977.

116. Zaphiris, P. G. Depth vs breath in the arrangement of web links [Text] / P. G. Zaphiris // Proceedings of the Human Factors and Ergonomics Society Annual Meeting. - Los Angeles, CA : SAGE Publications, 2000. - Vol. 44, no. 4. - P. 453-456.

117. Zaphiris, P. Expandable indexes versus sequential menus for searching hierarchies on the world wide web [Text] / P. Zaphiris, B. Shneiderman, K. Norman // Behaviour & Information Technology. - 2002. - Vol. 21, no. 3. - P. 201-207.

118. Zhilkin, M. Data Compression Based Method Of Revealing Hidden Information In Steganographic Systems [Text] / M. Zhilkin, N. Melentsova, B. Ryabko // Proceedings of XI International Symposium on Problems of Redundancy in Information and Control Systems. - Saint-Petersburg : [S. n.], 2007. - P. 42-44.

119. An improved method for LSB based color image steganography combined with cryptography [Text] / X. Zhou, W. Gong, W. Fu [et al.] // 2016 IEEE/ACIS 15th International Conference on Computer and Information Science (ICIS). - [S.l.] : IEEE, 2016. - P. 1-4.

120. Алейников, С. И. Защита программ от дизассемблирования [Текст] / С. И. Алейников, А. О. Богатов // Труды Института системного программирования РАН. - 2006. - Т. 11. - С. 9-16.

121. Алексеев, В. Е. Графы и алгоритмы. Структуры данных. Модели вычислений [Текст] / В. Е. Алексеев, В. А. Таланов. - М. : Интернет-университет информационных технологий, 2006. - 67 с.

122. Ахо А.В., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы [Текст] / А.В. Ахо, Д. Хопкрофт, Д. Ульман. - М. : Изд. дом "Вильямс", 2003. - 384 c.

123. Губко, М.В. Математическая модель оптимизации структуры иерархического меню [Текст] / М.В. Губко, А.И. Даниленко // Проблемы управления. - 2010. - № 4. - С. 49-58.

124. Гордиенко, В.В. Методы криптографии и стеганографии на основе иррациональных конечных последовательностей чисел [Текст] / В.В. Гордиенко, В.М. Довгаль, Ю.В. Рыжкова // Auditorium. - 2018. - №2(17). - С. 97-101.

125. Гордиенко, В.В. Методика текстовой стеганографии с использванием графического контейнерана основе гаммирования [Текст] / В.В. Гордиенко, В.М. Довгаль, Л.С. Крыжевич // Auditorium. - 2018. - №2(18). - С. 54-61.

126. Губко, М.В. Оптимизация пользовательских меню с учетом семантического качества [Текст] / М.В. Губко, А.И. Даниленко // Проблемы управления. - 2012. -№ 2. - С. 53-63.

127. Козубенко, Ю. В. Защита авторских прав на программы для ЭВМ в уголовном, административном и гражданском судопроизводстве [Текст] / Ю. В. Козубенко. - РФ : WoltersKluwer, 2009. - 344 c.

128. Крис, К. Искусство дизассемблирования. - СПб. : БХВ-Петербург, 2008. -896 с.

129. Нечта, И. В. Алгоритм построения алфавитного меню полиномиальной сложности [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2017. - №1. - С. 90 -95.

130. Нечта И.В. Методы построения цифровых водяных знаков в исполняемых файлах// Российская научно-техническая конференция "Современные проблемы телекоммуникаций", 2020. С. 11-25.

131. Нечта, И. В. Новый метод внедрения скрытых данных в текстовые контейнеры [Текст] / И. В. Нечта // Сборник статей II Всероссийской научно-практической "Современные тренды в науке". - Н. Новгород : [Б. и.], 2018. - С. 73-76.

132. Нечта, И. В. Новый метод стеганографии в социальных сетях [Текст] / И. В. Нечта // Современные проблемы телекоммуникаций : Рос. науч.-техн. конф. : материалы конф. - СибГУТИ, Новосибирск : [Б. и.], 2017. - С. 86-89.

133. Нечта, И. В. Новый метод стегоанализа текстовых данных, полученных кодированием длин серий синонимов [Текст] / И.В. Нечта // Безопасность информационных технологий. - 2018. - Т. 25, №2. - С. 114-120.

134. Нечта, И. В. Оптимизация построения алфавитного меню [Текст] / И. В. Нечта // Наука, Технологии, Инновации : сб. науч. трудов. - НГТУ, Новосибирск : Изд-во НГТУ, 2016. - Ч. 1. - С. 115-117.

135. Нечта, И. В. Построение иерархического меню при помощи кодов сжатия данных [Текст] / И. В. Нечта // Обработка информации и математическое моделирование : Рос. науч.-техн. конф. : материалы конф. - СибГУТИ, Новосибирск : [Б. и.], 2015. - С. 285-290.

136. Нечта, И. В. Построение меню при помощи алфавитного кода [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2015. - № 4. - С. 40-46.

137. Нечта, И. В. Применение алфавитного кодирования для оптимизации интерфейса [Текст] / И. В. Нечта, Б. Я. Рябко, Н. Н. Савина// Вычислительные технологии. - 2015. - T. 20. - № 5. - C. 97-104.

138. Нечта, И. В. Применение статистического анализа для обнаружения скрытых сообщений в текстовых данных [Текст] / И. В. Нечта // Вестник СибГУТИ.

- 2012. - №. 1. - С. 29-36.

139. Нечта, И. В. Применение стеганографии в программных интерфейсах [Текст] / И. В. Нечта // XVI Российская конференция "Распределенные информационно-вычислительные ресурсы. Наука - цифровой экономике" (DICR-2017).

- ИВТ СО РАН, Новосибирск : [Б. и.], 2017. - С. 327-332. ISBN: 978-5-905569-10-4.

140. Нечта, И. В. Современные проблемы человеко-машинного взаимодействия [Текст] / И. В. Нечта // Российская научно-техническая конференция аспирантов и молодых ученых «Перспективные информационные и телекоммуникационные технологии». - СибГУТИ, Новосибирск : [Б. и.], 2016. - С. 208-212.

141. Нечта, И. В. Эффективный метод стегоанализа базирующийся на сжатии данных [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2010. - №1. - C. 50-55.

142. Нечта, И.В. Анализ устойчивости динамических водяных знаков [Текст] / И.В. Нечта // Безопасность информационных технологий. - 2017. - Т. 25, № 2.

- С. 72-81.

143. Нечта, И.В. Метод внедрения скрытых сообщений в исполняемые файлы [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2011. - №2. - С. 3-10.

144. Нечта, И.В. Метод сокрытия информации в графоподобных структурах социальной сети [Текст] / И. В. Нечта // Вычислительные технологии. - 2018. - Т. 23, № 2. - С. 55-62.

145. Нечта, И.В. Метод стеганографического преобразования сообщения со свойством частичной неизвлекаемости [Текст] / И.В. Нечта // Вычислительные технологии. - 2019. - Т. 24, № 3. - С. 75-87.

146. Нечта, И.В. Новый метод внедрения скрытых сообщений в алфавитное меню [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2018. - №2. - С. 64-70.

147. Нечта, И.В. О методе считывания цифрового водяного знака в исполняемых файлах [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2020. - №1. - С. 3-10.

148. Нечта, И.В. Полухрупкие цифровые водяные знаки, базирующиеся на спектре Фурье [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2019. - №4. - С. 3341.

149. Нечта, И.В. Построение хрупкого цифрового водяного знака, применяемого коллективом соавторов в исполняемых файлах [Текст] / И.В. Нечта // Вестник НГУ. Серия: Информационные технологии. - 2020. - Т. 18, - № 1 (70). - С. 65-73. DOI: 10.25205/1818-7900-2020-18-1 -65-73.

150. Нечта, И.В. Эффективный метод стегоанализа, базирующийся на коде Хаффмана [Текст] / И. В. Нечта // Вестник СибГУТИ. - 2010. - № 4. - С. 47-53.

151. Разработка и использование эффективных методов машинного обучения для проектирования защищенных высокопроизводительных систем и сетей: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта, исполн.: А. А. Ракитский, П. А. Приставка, А. Малышева, В.Б. Бочкарев. Новосибирск, 2020. 42 с. Библиогр.: 27. № ГР АААА-Б20-220012890074-1.

152. Разработка и использование эффективных методов машинного обучения для проектирования защищенных высокопроизводительных систем и сетей: отчет по НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. И. В. Нечта, исполн.: А. А. Ракитский, П. А. Приставка, К. С. Чирихин. Новосибирск, 2019. 54 с. Библиогр.: 31. № ГР АААА-Б19-219020490005-8.

153. Разработка эффективных методов построения и оптимизации безопасных инфокоммуникационных систем: отчет о НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. Нечта И. В.; исполн.: Ракитский А. А., Приставка П. А., Чирихин К. С., Величко А. А. Новосибирск, 2017. 37 с. Библиогр.: с. 34-37. № ГР АААА-А17-117041910196-0.

154. Разработка теоретико-информационных методов оптимизации высокопроизводительных вычислительных систем, сетей и их интерфейсов: отчет о НИР (заключ.) / Сиб. гос. ун-т телекоммуникаций и информатики; рук. Нечта И. В.; исполн.: Приставка П. А., Ракитский А. А., Величко А. А., Грозовская Е. Л. Новосибирск, 2016. Библиогр.: с. 46-47. № ГР АААА-А16-116070610039-4.

155. Никольская, К. Ю. Обфускация и методы защиты программных продуктов. [Текст] / К. Ю. Никольская, А. Д. Хлестов // Вестник УрФО. Безопасность в информационной сфере. - 2015. - № 2. - C. 7-10.

156. Официальный сайт программы 1С [Электронный ресурс]. - URL: http://obrazovanie.1c.ru/license/ (дата обращения: 19.11.2019).

157. Официальный сайт программы Armadillo [Электронный ресурс]. - URL: https://the-armadillo-software-protection-system.apponic.com/ (дата обращения: 23.11.2019).

158. Официальный сайт программы ASProtect [Электронный ресурс]. - URL: http://www.asprotect.ru/ (дата обращения: 23.11.2019).

159. Официальный сайт программы IDA Pro Free [Электронный ресурс]. - URL: https://www.hex-rays.com/products/ida/index.shtml (дата обращения: 24.03.2019).

160. Официальный сайт программы IDAPro [Электронный ресурс]. - URL: https://www.hex-rays.com/products/ida/index.shtml (дата обращения: 07.10.2019).

161. Официальный сайт программы OllyDbg [Электронный ресурс]. - URL: http://www.ollydbg.de/ (дата обращения: 07.10.2019).

162. Официальный сайт программы UPX [Электронный ресурс]. - URL: https://upx.github.io/(дата обращения: 24.03.2019).

163. Официальный сайт программы VMMap [Электронный ресурс]. - URL: https://docs.microsoft.com/ru-ru/sysinternals/downloads/vmmap (дата обращения: 09.11.2019).

164. Официальный сайт программы WinDBG [Электронный ресурс]. - URL: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/ (дата обращения: 07.10.2019).

165. Рыжов, В.А. Качество экранных изображений в обучающих программах [Текст] / В.А. Рыжов, А.В. Корниенко, Д.В. Демидович // Педагогическая информатика. - 2002. - Т. 1. - С. 42-55.

166. Савина, Н.Н. Психология зрительного восприятия программных средств образовательного назначения [Текст] / Н. Н. Савина. - Новосибирск : Сибирское соглашение, 2003. - 20 с.

167. Сайт «Gutenberg Project». [Электронный ресурс]. - URL: http://www.gutenberg.org/wiki/Main_Page (дата обращения: 20.01.2018).

168. Сайт программы «Texto» [Электронный ресурс]. - URL: http://www.nic. unet.fi/pub/crypt/steganography/texto.tar.gz (дата обращения: 20.01.2018).

169. Свид. 2017616758 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа автоматического построения оптимизированного алфавитного меню / И. В. Нечта; правообладатель "СибГУТИ" Заявл. 31.05.2017, опубл. 13.06.2017. [Электронный ресурс]. -[Б. м. : б. и.].

170. Свид. 2018611327 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа анализа динамических водяных знаков / И. В. Нечта; правообладатель "СибГУТИ". Заявл. 12.12.2017, опубл. 01.02.2018. [Электронный ресурс]. - [Б. м. : б. и.].

171. Свид. 2018611768 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа внедрения скрытых сообщений в алфавитное меню / И. В. Нечта; правообладатель "СибГУТИ". Заявл. 12.12.2017, опубл. 06.02.2018. [Электронный ресурс]. - [Б. м. : б. и.].

172. Свид. 2018611922 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа чтения секретных сообщений из социальной сети Vk.com. / И. В. Нечта; правообладатель "СибГУТИ". Заявл. 12.12.2017, опубл. 08.02.2018. [Электронный ресурс]. - [Б. м. : б. и.].

173. Свид. 2018666585 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа стеганографического преобразования сообщения со свойством частичной неизвлекаемости / И. В. Нечта; правообладатель "СибГУТИ". Заявл. 26.11.2018, опубл. 18.12.2018. [Электронный ресурс]. - [Б. м. : б. и.].

174. Свид. 2020661084 Российская Федерация. Свидетельство о государственной регистрации программы для ЭВМ. Программа построения динамического цифрового водяного знака в исполняемых модулях / И. В. Нечта; правообладатель "СибГУТИ". Заявл. 09.09.2020, опубл. 17.09.2020. [Электронный ресурс]. - [Б. м. : б. и.].

175. Рябко, Б.Я. Ассимптотически оптимальные совершенные стеганографические системы [Текст] / Б.Я. Рябко, Д.Б. Рябко // Проблемы передачи информации. - 2009. - Т. 45, №2. - С. 119-126.

163

Приложения Приложение А Свидетельства о регистрации программ

169

Приложение Б

Исходные коды программы анализа динамических водяных знаков

ANALYSER.H

#ifndef ANALYSER_H #define ANALYSER_H #include <QMainWindow> #include <QString> #include <QFile> #include <QLabel> #include <QIODevice> #include <QDebug> #include <QVector> #include "mainwindow.h" #include "ui_mainwindow.h" struct Info{ unsigned int group; unsigned int pcount;

Info *next; };

struct Table{ unsigned int size; Info *group; unsigned int addr; QVector<int> connect;

int flag;

};

class Analyser

{

public:

Ui::MainWindow *ui;

QLabel *stat;

int BaseAddr;

QVector<Table> table;

QVector<QVector<int>> map;

char *Dump;

unsigned int Dump_size;

Analyser(Ui::MainWindow *u,QLabel *s);

~Analyser();

void Analyse();

void ReadLog(QString Path);

void ReadDump(QString Path);

void MergeSort(int low,int up);

void Merge(long lb, long split, long ub);

unsigned int FindPointer(int t);

void Status(QString);

void Connect();

int Search(unsigned int p);

void Statistics();

int MakeGroupe();

int GetGroupe();

int GetAlong();

void InitMap();

void OptimizePath(int i);

void Unite(int a,int b);

};

#endif // ANALYSER_H

ANALYSER.CPP

#include "analyser.h"

#include "mainwindow.h"

#include <QVector>

unsigned int Hex2Int(QString s){

unsigned int tmp=0;

unsigned char ch;

for (int i=0;i<s.size();i++){

ch=s[i].toLatin1();

if (ch<'a'){

tmp=tmp*16+(ch-'0'); }else{

tmp=tmp*16+(ch-'a'+10); }

}

return tmp;

}

QString Int2Hex(unsigned int t){ QString S;

QString D="0123456789abcdef";

while (t!=0){

S=D[t&15]+S;

t=t>>4; }

return S;

}

void Analyser::Status(QString S){

stat->setText(S);QApplication::processEvents();

}

Analyser::Analyser(Ui::MainWindow *u,QLabel *s)

{

ui=u;

stat=s; }

Analyser::~Analyser(){

for (int i=0;i<table.size();i++){

table[i].connect.clear();

// map[i].clear();

}

// map.clear(); table.clear();

delete Dump;

}

void Analyser::MergeSort(int low,int up){ int split; // индекс, по которому делим массив

if (low < up) { // если есть более 1 элемента

split = (low + up)/2;

MergeSort( low, split); // сортировать левую половину MergeSort(split+1, up);// сортировать правую половину

Merge(low, split, up); // слить результаты в общий массив }

}

void Analyser::Merge(long lb, long split, long ub){

// текущая позиция чтения из первой последовательности a[lb]...a[split] long pos1=lb;

// текущая позиция чтения из второй последовательности a[split+1]...a[ub] long pos2=split+1;

// текущая позиция записи в temp long pos3=0;

QVector<Table> temp(ub-lb+1);

// идет слияние, пока есть хоть один элемент в каждой последовательности

while (posl <= split && pos2 <= ub) {

if (table[pos1].addr < table[pos2].addr)

temp[pos3++] = table[pos1++];

else

temp[pos3++] = table[pos2++];

}

// одна последовательность закончилась -

// копировать остаток другой в конец буфера

while (pos2 <= ub) // пока вторая последовательность непуста

temp[pos3++] = table[pos2++];

while (posl <= split) // пока первая последовательность непуста temp[pos3++] = table[pos1++];

// скопировать буфер temp в a[lb]...a[ub] for (pos3 = 0; pos3 < ub-lb+1; pos3++) table[lb+pos3] = temp[pos3];

//delete temp;

temp.clear();

}

//=====================

void Analyser::Analyse(){

BaseAddr=Hex2Int(ui->lineEdit_Base->text()); ReadLog(ui ->li neEdit_Log->text()); ReadDump(ui->lineEdit_Dump->text()); MergeSort(0,table.size()-1);

Connect();

}

void Analyser::ReadLog(QString Path){ QFile file(Path); char ch;

unsigned int tmp; Table t;

Status("Reading Log"); int i=0;

if (file.open(QIODevice::ReadOnly)){ while(\file.atEnd()){ //read size ch='0';tmp=0; while (ch\=' '){

tmp=tmp*10+(ch-'0'); file.read(&ch,1);

}

t.size=tmp;

//read addr ch='0';tmp=0; while (ch\=0xd){ if (ch<'a'){

tmp=tmp*16+(ch-'0');

}else{

tmp=tmp*16+(ch-'a'+10);

}

file.read(&ch,1);

}

t.addr=tmp;

//i++;

file.read(&ch,1);

//qDebug()<<QString::number(t.addr)+" "+QString::number(t.size); table.append(t);

i++;

}

file.close();

} }

void Analyser::ReadDump(QString Path){ QFile file(Path);

if (file.open(QIODevice::ReadOnly)){ Status("Reading Dump"); Dump_size=file.s/ze(); Dump=new char[Dump_size]; file.read(Dump,Dump_size);

file.c/ose(); }

}

unsigned int Analyser::FindPointer(int t){ //search correct pointer in dump[a,b]

unsigned char a,b,c,d;

unsigned int tmp,x;

unsigned start_addr,size;

start_addr=table[t].addr;

size=table[t].size;

for (int i=start_addr;i<=start_addr+size-4;i++){ a=(unsigned char)Dump[i-BaseAddr+0]; b=(unsigned char)Dump[i-BaseAddr+1]; c=(unsigned char)Dump[i-BaseAddr+2]; d=(unsigned char)Dump[i-BaseAddr+3]; tmp=((d*256+c)*256+b)*256+a; //qDebug()<<Int2Hex(tmp); x=Search(tmp); if (x!=-1){

// qDebug()<<Int2Hex(start_addr)+"-"+Int2Hex(table[x]. addr);

table[t].connect.append(x);

}

}

return 0;

}

void Analyser::Connect(){ Status("Connecting");

ui->progressBar->setMaximum(table.size()); for (int i=0;i<table.size();i++){

ui->progressBar->setValue(i);

QApplication::processEvents();

FindPointer(i);

Status("Connecting "+QString::number(i)+" from "+QString::number(table.size()));

}

ui->progressBar->setValue(0);

}

int Analyser::Search(unsigned int p){// returns element of table where p in

[mallocaddress;mallocaddress+size)

unsigned int tmp;

int l,h,m;

l=0;h=table.size()-1;

while (l<=h){

m=(l+h)/2;

tmp=table[m].addr;

//if ((tmp<=p)&&(p<tmp+table[m].size)){ if (tmp==p){

return m;

}

if (p<tmp){

h=m-1;

}else{

l=m+1; }

}

return -1;

}

void Analyser::InitMap(){

Status("Init Map");

for (int i=0;i<table.size();i++){

table[i].group=new Info;

table[i].group->group=i;

table[i] .group->pcount=1;

table[i] .group->next=NULL; }

}

void Analyser::OptimizePath(int i){ Info *p0,*p;

p0=table[i] .group->next;

if (p0==NULL){ //has only native Info (non removable)

return;

}

p=p0->next;

while(p!=NULL){ p0->pcount-- ; if (p0->pcount==0){

delete p0;

}

table[i] .group->next=p; p0=p;

p=p->next; }

}

int Analyser::MakeGroupe()

{

Status("Grouping");

for (int i=0;i<table.size();i++){

for (int j=0;j <table [i]. connect.size();j++){

Unite(i,table[i].connect[j]);

}

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.