Скачать 1.43 Mb.
|
4.3.2 Описание разработанных программ Когда мы говорим об эффективности внедрения, мы учитываем число битов, которые могут быть внедрены в исходные файлы. Исходя из особенностей описываемого метода, емкость определяется двумя вещами: сколько переменных объявлены в каждой функции и сколько групп независимых инструкций мы можем найти. Однако существуют ограничения, уменьшающие объем внедряемой информации. Ниже приводятся наиболее существенные из них.
a = b + x(); c = 5 + y(); в данном случае функции могут использовать один общий объект (переменная, файл и др.), и возвращаемое значение может зависеть от состояния этого объекта.
*p = 5; *q = 4; могут быть зависимы, когда указатели p и q ссылаются на одну и ту же область памяти.
#define a *g int R() { int f,*g=new (int); *g=6; f=*g+1; a=-9; … } В таком случае, операции присваивания f1=*g+1; и a=5; являются зависимыми не смотря на то, что содержат различные имена переменных. Как показывают эксперименты, указанные ограничения очень сильно уменьшают объем внедряемой информации. Здесь уместно разделять два вида емкости: фактическая емкость, которая достигается с учетом всех ограничений, и теоретическая, которая может быть достигнута, если программист будет сам непосредственно указывать независимые переменные. В последнем случае, можно отказаться от вышеописанных ограничений. Для практической проверки работы предлагаемой схемы встраивания информации была создана программа, внедряющая и извлекающая секретное сообщение из исходных кодов программ на C\C++. На вход программе подается множество файлов с исходными кодами и внедряемое сообщение. В настоящий момент существуют две версии программы: консольная и с графическим интерфейсом. Обе программы внедряют и извлекают водяной знак одинаковым образом. Рис. 4.1. Консольная версия программы нанесения водяных знаков Рис. 4.2. Графическая версия программы нанесения водяных знаков Принципиальная схема работы программы сводится к следующим этапам.
Теперь рассмотрим работу программы подробнее по пунктам. На этапе предварительной обработки директив препроцессора производится удаление из исходных текстов программ комментариев и строковых констант, так как их содержимое ошибочно может быть распознано как часть программного кода. Далее производится проверка на наличие условных директив компиляции. Файлы, содержащие такие директивы, следует отбросить из-за того, что часть кода программы (и, следовательно, водяной знак), находящаяся между директивами, может быть не включена в исполняемый файл. На следующем этапе необходимо, пропустив глобальные объявления различных объектов, найти описание первой функции, имеющей следующий шаблон: “<тип><идентификатор>(<набор параметров>) {”. Стоит отметить, что особенностью разработанной программы является то, что для внедрения сообщения не требуется весь исходный код (включая заголовочные файлы и др.). Программа определяет считанный идентификатор как описание типа, если он находится в начале ряда идентификаторов (не являющихся зарезервированными) идущих друг за другом через пробел. Последний идентификатор в таком ряде (согласно стандарту ANSI C [48]) относится к имени объекта (переменной, функции и др.). Например, Sometype ttt( ){… или #define Sometype unsigned #define x int Sometype x ttt = … В последнем случае, можно определить последовательность Sometype x как описание типа, не анализируя директивы препроцессора (#define). На следующем этапе производится обработка локальных переменных. В разработанной версии программы предполагается, что все локальные переменные объявляются вначале функции. Производится считывание блока описания переменных и, в зависимости от типа выполняемой операции (чтения или записи водяного знака), производится его дальнейшая обработка. Будем считать, что блок переменных заканчивается в том случае, если встретилось постороннее выражение (цикл, присваивание, и др.). Этап обработки операций присваивания базируется на предыдущем этапе, так как необходимо знать имена локальных переменных. К перестановкам допускаются те выражения, которые являются независимыми относительно друг-друга (изменяемая переменная не фигурирует в других выражениях). При обнаружении зависимого выражения, производится его пропуск. Например, имеется блок из пяти выражений: A = d + 1; // 1 C = F + 5; // 2 d = 17; // 3 a = x + 5; // 4 f = c + 1; // 5 Мы видим, что выражения 1 и 3 зависимы. Так образом, внедрение осуществляется перестановкой 1 и 2 выражений. Затем, пропускается присваивание 3, и производится перестановка 4 и 5 выражений. Таким образом, блок независимых операций присваивания заканчивается при появлении зависимого выражения (как в рассмотренном примере), либо при появлении выражения неподходящего для перестановки (присваивание, имеющее вызов функции, указатели и др.). На пятом этапе происходит переход на новую функцию или окончание анализа, если достигнут конец файла. 4.4 Описание результатов проведения эксперимента Для практической проверки работы предложенной схемы были использованы 33 программы C\C++ для платформы Symbian. Проекты с исходными текстами являются общедоступными и были взяты из сети Internet. Ниже приводятся результаты проведенного эксперимента для некоторых проектов в табл. 4.2. Таблица 4.2. Объем внедряемого водяного знака в исходные коды программ
|
Российской федерации Курс призван дать понимание принципов построения и функционирования сети Интернет, а также базирующихся на ней информационных технологий.... | Аналитический доклад Совету глав правительств СНГ о текущем состоянии,... В настоящее время эффективное информационное взаимодействие невозможно представить без использования информационных технологий, телекоммуникационных... | ||
Information technology. Security techniques. Methodology for it security evaluation Информационная технология. Методы и средства обеспечения безопасности. Методология оценки безопасности информационных технологий | Выпускная работа по «Основам информационных технологий» На современном этапе ни одни исследования в науке невозможно представить без использования информационных технологий. Данный реферат... | ||
Основные направления внедрения средств информационных и коммуникационных... Зация образования – это процесс обеспечения сферы образования методологией и практикой разработки и оптимального использования современных... | Доклад по теме: «Внедрение технологий глонасс в интересах обеспечения... «Внедрение технологий глонасс в интересах обеспечения безопасности граждан и социально-экономического развития Костромской области.... | ||
Применение информационных технологий на уроках английского языка... Возможности использования информационно-коммуникативных технологий в обучении английскому языку 17 | Методические рекомендации по организации месячникамедиабезопасности... Мешиона от 24. 10. 13 №397-у «О проведении Интрнет-уроков «Имею право знать!», в целях обеспечения информационной безопасности обучающихся,... | ||
Исследование и разработка методов и средств обеспечения информационной... Работа выполнена на кафедре прикладной информатики Московского государственного университета геодезии и картографии (миигаиК) | Применение информационных технологий на уроках истории и обществоведения... Возможности использования информационно-коммуникативных технологий в обучении истории 17 | ||
Программа по формированию навыков безопасного поведения на дорогах... Изучение и разработка новых методов подготовки к егэ в 11 классе с учетом использования современных технологий | Программа по формированию навыков безопасного поведения на дорогах... Изучение и разработка новых методов подготовки к егэ в 11 классе с учетом использования современных технологий | ||
Эффективность использования информационных технологий в исследованиях... Специальность 23. 00. 01 – теория и философия политики, история и методология политической науки | Рабочая программа учебной дисциплины «Информационные системы в экономике» Сформировать у студентов знаний и навыков в области использования информационных технологий и информационных систем для решения экономических... | ||
Методические рекомендации по государственной регистрации и учету... «Центр информационных технологий и систем органов исполнительной власти» (далее – фгну цитиС) в целях формирования национального... | Приходько Юлия Алексеевна Приложение №2 Белгородский региональный... Необходимость внедрения новых информационных технологий в процесс обучения математики |