МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Защита информации в системах дистанционного обучения с монопольным доступом

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

    программ только тогда, когда будет выполнен ряд условий. Допустим, после

    сдачи определенного набора работ. Когда определенные работы будет сданы и

    защищены, АРМ преподавателя выдает студенту необходимые для дальнейшей

    работы ключевые файлы. Можно было бы, конечно, выдавать сразу

    расшифрованный бинарный файл, но программа может быть достаточно большой, и

    это просто нерационально. И, тем более, тогда нет никаких сложностей

    скопировать ее другому студенту, которому она еще не должна быть выдана.

    Теперь опишем второй режим работы. Это непосредственно запуск

    зашифрованного модуля. Для его запуска необходимо запустить ProtectEXE,

    указав в качестве параметра путь и имя зашифрованного файла с расширением

    upb. Если будет найден ключевой файл с тем же именем, но с расширением upu,

    то программа будет запущена. При этом будет создан временный файл с

    расширением exe. Он будет располагаться в том же каталоге, где нахолодятся

    фалы с расширением upb и upu. Этот файл является временным и будет удален

    после завершения работы программы. Данный файл, хоть и носит расширение

    exe, не является исполняемым файлом. В чем можно убедиться, попытавшись

    запустить его. Результатом будет его зависание. Поэтому не следует бояться,

    что это расшифрованный файл, и студент сможет скопировать его, когда он

    будет создан.

    4.4. Описание использования системы защиты на примерах

    4.4.1. Подключение модуля защиты к программе на языке Visual C++

    Распишем шаги, которые наобходимо проделать, чтобы подключить COM

    модуль Uniprot к программе, написанной на Visual C++.

    1. Создайте новый или откройте уже существующий проект.

    2. Создайте новую папку в каталоге с проекта или выберете уже

    существующую и скопируйте в нее необходимые для подключения библиотеки

    файлы. Это файлы: export.h, export.cpp, Uniprot.tlb.

    3. Откройте MFC ClassWizard. Для этого выбирете в меню пункт

    View->ClassWizard.

    4. Нажмите на кнопку Add Class и выберете пункт "From a type library…".

    5. Укажите путь к файлу Uniprot.tlb и откройте его.

    6. В диалоге Confirm Classes вам скорее всего будет достаточно сразу

    нажать кнопку "Ok". Но если вы не согласны с продложенными установками

    по умолчанию, то можете внести в них соответсвующие изменения.

    7. Закройте диалог MFC ClassWizard.

    8. Включите в проект файлы export.h, export.cpp.

    9. Добавить include "export.h" в те модуле, где вы планируете

    использовать библиотеку Uniprot.

    10. Проверьте, что у вас инициализируется работа с COM. То есть

    вызывается функция CoInitialize.

    11. Теперь вы можете работать с библиотекой COM например так.

    IProtect ProtectObj;

    IProtectFile ProtectFileObj;

    ProtectObj.CreateDispatch(UniprotLibID);

    ProtectFileObj.CreateDispatch(UniprotLibID);

    LPDISPATCH pDisp = ProtectFileObj.m_lpDispatch;

    HRESULT hr = pDisp ->QueryInterface(

    IProtectFileIntarfaceID,

    (void**)&ProtectFileObj.m_lpDispatch);

    VERIFY(hr == S_OK);

    4.4.2. Подключение модуля защиты к программе на языке Visual Basic

    Распишем шаги, которые наобходимо проделать, чтобы подключить COM

    модуль Uniprot к программе, написанной на Visual Basic.

    12. Создайте новый или откройте уже существующий проект.

    13. Создайте новую папку в каталоге с проекта или выберете уже

    существующую и скопируйте в нее необходимый для подключения библиотеки

    файл. Это файл: Uniprot.tlb.

    14. Откройте диалог References. Для этого выбирете в меню пункт

    Project->References.

    15. Нажмите кнопку Browse.

    16. Укажите файл Uniprot.tlb и откройте его.

    17. Поставьте в списке галочку напротив появившейся строки Uniprot 1.0

    Type Library и нажмите Ok.

    18. Теперь вы можете работать с библиотекой COM например так.

    Dim handle As Integer

    Dim obj As New protect

    Dim ver As Integer

    Dim strInfo As String

    obj.GetInfo ver, strInfo

    Dim s As String

    s = "Version:" + Str(ver / 256) + "." +

    Str((ver Mod 256) / 16) + Str(ver Mod 16)

    s = s + Chr(13) + "Info:" + strInfo

    MsgBox s

    Dim file As IProtectFile

    Set file = obj

    handle = file.Create(FileName, Default, cryptUPT)

    4.4.3. Пример использования модуля защиты в программе на языке Visual Basic

    Рассмотрим несколько демонстрационных программах. Представим, что у

    нас существует комплекс, состоящий из двух частей. Первая из которых

    предназначена для преподавателя, а другая – для студента. В дальнейшем

    будем называть их соответственно "АРМ преподавателя" и "АРМ студента". АРМ

    преподавателя предназначена для составления вопросов и просмотра

    результатов тестирования. А АРМ студента предназначена для контроля знаний.

    Естественно, примеры данных программ будут очень упрощены.

    Для начала приведем текст программы АРМ преподавателя без

    использования защиты. На рисунке 8 показан ее пользовательский интерфейс.

    |Private Sub Edit_Click() |[pic] |

    |orm1.ole_doc.DoVerb |Рисунок 8. Интерфейс АРМ преподавателя |

    |End Sub | |

    | | |

    |Private Sub Form_Load() | |

    |Form1.ole_doc.Format = | |

    |"Rich Text Format" | |

    |End Sub | |

    | | |

    |Private Sub Load_Click() | |

    |Open "c:\temp\temp.rtf" For| |

    |Input As #1 | |

    |Dim str, tmp | |

    |Do While Not EOF(1) | |

    |Input #1, tmp | |

    |str = str + tmp | |

    |Loop | |

    |Close #1 | |

    |Form1.ole_doc.DoVerb | |

    |vbOLEDiscardUndoState | |

    |Form1.ole_doc.DataText = | |

    |str | |

    |Form1.ole_doc.Update | |

    |End Sub | |

    | | |

    |Private Sub Save_Click() | |

    |Dim msg | |

    |Form1.ole_doc.DoVerb | |

    |vbOLEDiscardUndoState | |

    |msg = | |

    |Form1.ole_doc.DataText | |

    |Open "c:\temp\temp.rtf" For| |

    |Output As #1 | |

    |Print #1, msg | |

    |Close #1 | |

    |End Sub | |

    | | |

    |Private Sub | |

    |ViewResult_Click() | |

    |Open "c:\temp\result.txt" | |

    |For Input As #1 | |

    |Dim n As Integer | |

    |Input #1, n | |

    |Close #1 | |

    |result = n | |

    |End Sub | |

    Итак, данная программа позволяет загрузить текст вопроса из файла,

    отредактировать его и опять сохранить. На практике, естественно, кроме

    этого должен существовать механизм генерации пакета программ и данных для

    студента. Т.е. в этот пакет, по всей видимости, должны входить АРМ

    студента, база данных и т.д. В нашем примере мы это опускаем и

    предполагаем, что сохраненный текст – все, что необходимо. Эта программа

    позволяет просмотреть файл с результатом тестирования по заданному вопросу.

    Это файл генерирует АРМ студента. Он представляет собой файл, в котором

    записано число – оценка за вопрос. Недостатки данной программы мы

    рассмотрим чуть ниже, когда познакомимся с АРМ студента. На рисунке 9

    показан ее внешний вид.

    |Private Sub SaveResult(a) | |

    |Open "c:\temp\result.txt" For |[pic] |

    |Output As #1 |Рисунок 9. Интерфейс АРМ студента |

    |Print #1, a | |

    |Close #1 | |

    |End | |

    | | |

    |End Sub | |

    |Private Sub Command1_Click(Index As| |

    |Integer) | |

    |SaveResult (2) | |

    |End Sub | |

    | | |

    |Private Sub Command2_Click() | |

    |SaveResult (2) | |

    |End Sub | |

    | | |

    |Private Sub Command3_Click() | |

    |SaveResult (5) | |

    |End Sub | |

    | | |

    |Private Sub Command4_Click() | |

    |SaveResult (2) | |

    |End Sub | |

    | | |

    |Private Sub Form_Load() | |

    |Form1.ole_doc.Format = "Rich Text | |

    |Format" | |

    |Open "c:\temp\temp.rtf" For Input | |

    |As #1 | |

    |Dim str, tmp | |

    |Do While Not EOF(1) | |

    |Input #1, tmp | |

    |str = str + tmp | |

    |Loop | |

    |Close #1 | |

    |Form1.ole_doc.DoVerb | |

    |vbOLEDiscardUndoState | |

    |Form1.ole_doc.DataText = str | |

    |Form1.ole_doc.Update | |

    |End Sub | |

    Как видно эта программа очень проста. Она просто выводит текст вопроса

    и ждет ответ. После чего записывает оценку в файл. На рисунке 10 показано,

    как выглядит файл с результатом.

    [pic]

    Рисунок 10. Файл с незашифрованным результатом

    Естественно, такая система не выдерживает никакой критики с точки

    зрения защиты. Во-первых, файл с вопросом представляет из себя простой RTF-

    файл. Конечно, если эти файлы будут храниться в защищенной базе, то проблем

    не возникнет. Мы же предполагаем, что пока они хранятся открыто.

    Предположим, что таких файлов много, и недопустимо, чтобы студент имел к

    ним доступ. Соответственно, это одно из мест, где потребуется модуль

    защиты. Второе, пожалуй, еще более важное место – это файл с результатом.

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

    Хранение результата в таком виде как просто, так и недопустимо.

    Теперь, используя модуль зашиты, мы исправим перечисленные

    недостатки. Для начала покажем новый интерфейс пользователя и объясним

    изменения. Кнопки "Загрузить текст", "Сохранить текст" остались, но теперь

    программа будет работать с зашифрованными данными. Кнопка "Импорт старых

    данных" предназначена для чтения незашифрованного файл с вопросом.

    Кнопка "Сгенерировать пакет" генерирует 4 алгоритма. Первая пара

    алгоритмов шифрования/расшифрования используется для записи/чтения файла с

    вопросом. При этом студенту достаточно отдать только файл с алгоритмом

    расшифрования. Вторая пара используется при работе с файлом, содержащим

    результат тестирования. Алгоритм шифрования предназначен для АРМ студента.

    Алгоритм расшифрования относится к АРМ преподавателя и служи для

    расшифрования этого файла. Передача студенту только некоторых алгоритмов

    повышает надежность защиты.

    Новый интерфейс АРМ преподавателя изображен на рисунке 11.

    [pic]

    Рисунок 11. Новый интерфейс АРМ преподавателя

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

    не много. Добавилась глобальная перемеренная obj. Она предназначена для

    взаимодействия с COM-модулем. Глобальной она быть совсем не обязана, просто

    это было сделано для краткости программы. Типом этой переменный является

    указатель на интерфейс IProtect. Но использовать этот интерфейс для

    шифрования/расшифрования не представляется возможным. Поэтому, в дальнейшем

    obj будем преобразовывать этот указатель к указателю на интерфейс

    IProtectFile.

    Dim obj As New protect

    Private Sub Edit_Click()

    Form1.ole_doc.DoVerb

    End Sub

    Private Sub Form_Load()

    Form1.ole_doc.Format = "Rich Text Format"

    End Sub

    Данная подпрограмма предназначена для генерации 4 алгоритмов

    шифрования/расшифрования. Для простоты она записываются во временную папку.

    Причем, генерируемые алгоритмы будут ограничены в использовании по времени.

    Файл "c:\temp\crypt.upt" и "c:\temp\decrypt.upt" предназначены для работы с

    файлом содержащим вопрос. Файл "c:\temp\cryptres.upt" и

    "c:\temp\decryptres.upt" предназначены для работы с фалом результата.

    Следовательно для работы АРМ-преподавателя необходимы файлы

    "c:\temp\crypt.upt" , "c:\temp\decrypt.upt" и "c:\temp\decryptres.upt". А

    для АРМ-студента необходимы файлы "c:\temp\decrypt.upt",

    "c:\temp\cryptres.upt".

    Private Sub Generate_Click()

    Dim days As Integer

    days = DaysLimit

    obj.GenerateTimeLimitUPTfiles "c:\temp\crypt.upt", "c:\temp\decrypt.upt",

    days

    obj.GenerateTimeLimitUPTfiles "c:\temp\cryptres.upt",

    "c:\temp\decryptres.upt", days

    End Sub

    Эта подпрограмма фактически является старой подпрограммой загрузки

    файла с вопросом. Она служит для импорта данных в старом формате чтобы не

    набирать же вопрос заново.

    Private Sub Import_Click()

    Open "c:\temp\temp.rtf" For Input As #1

    Dim str, tmp

    Do While Not EOF(1)

    Input #1, tmp

    str = str + tmp

    Loop

    Close #1

    Form1.ole_doc.DoVerb vbOLEDiscardUndoState

    Form1.ole_doc.DataText = str

    Form1.ole_doc.Update

    End Sub

    Вот новая подпрограмма чтения текста вопроса из файла. Дадим

    комментарии к некоторым строчкам.

    Dim file As IProtectFile – объявляет указатель на интерфейс IProtectFile,

    который позволяет шифровать/расшифровывать файлы.

    handle = file.Open("c:\temp\temp.dat", "c:\temp\decrypt.upt",

    "c:\temp\crypt.upt") – открываем файл с вопросом и сохраняем дескриптор

    открытого файла.

    readSize = file.Read(handle, v) – читаем переменную типа Variant, которая

    на самом деле будет представлять из себя строку.

    file.Close (handle) – закрывает файл.

    Private Sub Load_Click()

    Dim handle As Integer

    Dim file As IProtectFile

    Set file = obj

    handle = file.Open("c:\temp\temp.dat", "c:\temp\decrypt.upt",

    "c:\temp\crypt.upt")

    Dim readSize As Long

    Dim v As Variant

    readSize = file.Read(handle, v)

    Dim str As String

    str = v

    Form1.ole_doc.DoVerb vbOLEDiscardUndoState

    Form1.ole_doc.DataText = str

    Form1.ole_doc.Update

    file.Close (handle)

    End Sub

    Вот как теперь выглядит новая подпрограмма сохранения вопроса в файл.

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.