Разработка и внедрение модулей защиты информации от несанкционированного копирования в информационную систему

Характеристика потенциальных угроз информации в информационной системе фирмы. Принцип функционирования программного обеспечения, разработка модулей и проект таблиц баз данных. Требования безопасности при работе на ПЭВМ, оценка эффективности проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.06.2011
Размер файла 3,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

5. Разрабатываемая система является экологически безвредной.

6. РАСЧЕТ ТЕХНИКО-ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА

6.1 Организационно-экономическая сущность задачи

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

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

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

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

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

6.2 Определение трудоемкости разработки программы

Трудоемкость создания программы определяется по формуле:

(6.1)

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

Слагаемые затрат труда определяются через условное количество команд в программе, которое потребуется программисту для решения задачи и определяется по формуле:

,(6.2)

где - предполагаемое число команд, Оп = 420;

- коэффициент сложности программы, ;

- коэффициент коррекции программы при ее разработке, .

Подставив значения в формулу 6.2, получаем O = 462 команды. Описание задачи является творческим процессом, поэтому его трудоемкость не рассчитывается: To = 6 чел.-ч.

Затраты труда на изучение задачи определяются по формуле:

(6.3)

где - коэффициент квалификации разработчика, определяемый в зависимости от стажа работы, Ккв = 1,2;

- коэффициент увеличения затрат труда из-за недостаточно грамотного описания задачи, .

Согласно формуле 6.3 ТИ = 4,53 чел.-ч.

Затраты труда на разработку алгоритма решения задачи:

15,4 чел.-ч. (6.4)

Затраты труда на построение блок-схемы программы:

25,7 чел.-ч. (6.5)

Затраты на кодирование программы на языке программирования:

15,4 чел.-ч. (6.6)

Затраты труда на отладку программы:

47,75 чел.-ч. (6.7)

Затраты труда на подготовку документации:

33,7 чел.-ч. (6.8)

Подставив все значения в формулу 6.1, получаем трудоемкость разработки программы T = 148,48 чел.-ч или T = 18,56 чел.-дн.

6.3 Расчет затрат на создание программы

Затраты на создание программы определяются по формуле:

, (6.9)

где - затраты на установку и настройку программных продуктов, с помощью которых осуществлялась разработка;

- затраты на написание программы;

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

(6.10)

, (6.11)

где Ту - количество чел.-дн, необходимое для установки и настройки необходимых программ;

Ту = 1 чел.-ч = 0,125 чел.-дн;

- стоимость 1 чел.-дн.

Для функционирования программы необходимо как минимум 2 USB flash-накопителя с объемом памяти не менее 1 Гб. Средняя стоимость flash-накопителя 400 рублей. Отсюда КТС = 800 рублей.

Затраты на написание программы определяются через сметную стоимость работ, которая рассчитывается по формуле:

, (6.12)

где - трудоемкость создания программы;

- стоимость 1 чел.-дн.

Стоимость 1 чел.-дн. определяется по формуле:

, (6.13)

где - среднедневная заработная плата разработчика;

- коэффициент дополнительной зарплаты, dдоп = 0,05

- коэффициент отчислений на социальное страхование, dотч = 0,34;

- стоимость среднедневного расхода материалов (таблица 1);

СЭВМ - стоимость среднедневного расхода машинного времени.

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

Таблица 6.1 - Расчет стоимости материалов

Наименование

Единица измерения

Количество

Цена, руб.

Стоимость,

руб.

Диски CD-R

шт.

1

20

20

Канцтовары

шт.

1

15

15

Бумага

лист

150

0,5

75

Электроэнергия

кВт/ч

80

2,5

200

Итого стоимость материалов:

310

Стоимость дня машинного времени определяется по формуле:

(6.14)

где - паспортная мощность ЭВМ, кВт/ч;

- цена за 1 кВт/ч, руб.;

- время работы ЭВМ, ч.;

Согласно формуле 14 руб.

Заработная плата программиста составляет 16000 рублей, количество рабочих дней в месяце - 20, тогда СДН = 800 руб.

Подставив все значения в формулу 6.13, получаем стоимость 1 чел.-дн.:

руб. (6.15)

Таким образом, по формуле 6.10 находим затраты на написание программы:

руб. (6.16)

По формуле 6.11 находим затраты на установку и настройку программных продуктов, с помощью которых осуществлялась разработка:

руб. (6.17)

По формуле 6.9 определяем затраты на создание программы:

Кп = 26719 + 180 + 800 = 27699 руб. (6.18)

6.4 Расчет затрат на внедрение программы

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

,(6.19)

где К - суммарные затраты на создание программы;

У - затраты на установку и настройку программы;

Кдоп - расходы на дополнительные технические средства.

На установку и настройку одной копии пользовательского модуля программы требуется 1 чел.-ч, на установку и настройку модуля администрирования - 2 чел.-ч. Количество рабочих станций, на которых необходимо установить и настроить пользовательский модуль, равно 20, рабочая станция администратора одна. Таким образом, таким образом на установку и настройку программы требуется 22 чел.-ч или 2,75 чел.-дн.

Затраты на установку и настройку программы вычисляются по формуле:

руб. (6.20)

Для внедрения в организацию программы необходимо закупить 21 USB flash-накопитель с объемом памяти не менее 1 Гб. Средняя стоимость flash-накопителя 400 рублей. Отсюда Кдоп = 21 400 = 8400 рублей.

Суммарная стоимость внедрения программы по формуле 6.19 равна:

Ст = 27699 + 3959 + 8400 = 40058 руб. (6.21)

6.5 Оценка экономической эффективности проекта

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

В качестве аналогов рассмотрим программное обеспечение фирм «Код безопасности» (средство защиты информации «Secret Net 6.5. Вариант К»), «Конфидент» (средство защиты информации «Dallas Lock 7.7»), «Аладдин» (средство защиты «Secret Disk 4»). Цены на программное обеспечение и его настройку были взяты из официальных прайс-листов фирм.

Стоимость внедрения решения другой фирмы можно рассчитать по формуле:

Ст = (Стпо + У) Кид + Стид (Кид+1), (6.22)

где Стпо - стоимость программного обеспечения для одной рабочей станции;

У - стоимость установки и настройки программного обеспечения на одной рабочей станции специалистами фирмы-разработчика;

Кид - необходимое количество персональных идентификаторов;

Стид - стоимость одного персонального идентификатора.

При выборе решения «Secret Net 6.5» от фирмы «Код безопасности»:

Стпо = 6650 руб.

У = 3200 руб.

В качестве персональных аппаратных идентификаторов пользователей в «Secret Net 6.5» используются идентификаторы «eToken Pro», Стид = 1600 руб.

Кид = 20 (по количеству рабочих станций).

Таким образом, по формуле 6.22 получаем стоимость внедрения решения «Secret Net 6.5»:

Ст1 = (6650 + 3200) 20 + 1600 21 = 230600 руб. (6.23)

При выборе решения «Dallas Lock 7.7» от фирмы «Конфидент»:

Стпо = 5400 руб.

У = 1400 руб.

В качестве персональных аппаратных идентификаторов пользователей в «Dallas Lock 7.7» используются идентификаторы «eToken Pro», Стид = 1600 руб.

Кид = 20 (по количеству рабочих станций).

Таким образом, по формуле 6.22 получаем стоимость внедрения решения «Dallas Lock 7.7»:

Ст2 = (5400 + 1400) 20 + 1600 21 = 169600 руб. (6.24)

При выборе решения «Secret Disk 4» от фирмы «Аладдин»:

Стпо = 2900 руб.

У = 3200 руб.

В качестве персональных аппаратных идентификаторов пользователей в «Secret Disk 4» используются идентификаторы «eToken Pro Java», Стид = 1250 руб.

Кид = 20 (по количеству рабочих станций).

Таким образом, по формуле 6.22 получаем стоимость внедрения решения «Secret Disk 4»:

Ст3 = (2900 + 3200) 20 + 1250 21 = 148250 руб. (6.25)

Далее необходимо рассчитать среднюю экономию материальных средств при использовании разработанной программы. Средняя стоимость внедрения средств защиты других фирм вычисляется по формуле:

Стср = (Ст1 + Ст2 + Ст3) / 3 = руб. (6.26)

Средняя экономия вычисляется путем вычитания их стоимости внедрения средств защиты других фирм стоимости внедрения разработанной программы и равна

Эк = Стср - Ст = 182816,7 - 40058 = 142758,7 руб. (6.27)

Расчет экономической эффективности внедрения разрабатываемой программы можно произвести по формуле:

Э = (Эк / К) 100% , (6.28)

где Эк - средняя экономия, получаемая при внедрении разработанной программы;

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

Средняя рыночная стоимость одной рабочей стации равна 15000 руб. Количество закупаемых рабочих станций равно 20. Таким образом,

K = 20 15000 = 30000 руб. (6.29)

По формуле 6.28 рассчитываем экономическую эффективность:

Э = (142758,7 / 30000) 100% = 47,6%. (6.30)

6.6 Выводы

1. Определена трудоемкость разработки программы.

2. Произведен расчет затрат на создание программы.

3. Произведен расчет затрат на внедрение программы

4. Произведено сравнение стоимости внедрения разработанной программы со стоимостью внедрения аналогов от других фирм. При внедрении разработанной системы предприятие экономит порядка 143000 руб, по сравнению со стоимостью внедрения аналогов других фирм.

5. Произведена оценка экономической эффективности проекта. Она равна 47,6%.

ЗАКЛЮЧЕНИЕ

В ходе проектирования была проанализирована информационная система ЗАО «Орбита», и выявлены актуальные угрозы информационной безопасности. Для их устранения был сформирован ряд требований, предъявляемых к разрабатываемой системе защиты.

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

Первый модуль - модуль администрирования, который позволяет:

- управлять учетными записями пользователей защищенной среды: создавать, редактировать, удалять учетные записи;

- назначать различные права пользователям защищенной базы данных;

- управлять учетной записью администратора, изменять пароль, присваивать аппаратные идентификаторы;

- управлять настройками защиты базы данных;

- настраивать резервное копирование базы данных;

- настраивать местоположение сетевой защищенной среды;

- настраивать и просматривать журнал работы в защищенной среде.

Второй модуль - пользовательский модуль, который позволяет:

- осуществлять доступ пользователя к защищенной среде по вводу пароля и предъявлению аппаратного идентификатора;

- отображать файлы и папки, хранящиеся в защищенной среде;

- добавлять файлы в защищенную среду;

- создавать файлы внутри защищенной среды;

- удалять файлы из защищенной среды;

- осуществлять обмен файлами с другими пользователями путем копирования файлов и папок в сетевую защищенную среду;

- выполнять пользователям только те функции над файлами, которые разрешены администратором для их учетных записей.

В качестве среды разработки программы была выбрана среда Borland Delphi 7.

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

Для хранения учетных данных пользователей и настроек защиты была выбрана база данных Paradox 7. Хранение базы данных осуществляется в зашифрованном виде для устранения возможности несанкционированного ее изменения. В качестве алгоритма шифрования был выбран алгоритм Raiden, блочный алгоритм шифрования типа «Сеть Фейстеля».

Разработанная система защиты была внедрена в информационную систему ЗАО «Орбита». Таким образом, были нейтрализованы следующие угрозы информационной безопасности:

- несанкционированное изменение информации;

- несанкционированное копирование информации;

- копирование информации на незарегистрированный носитель информации, в том числе печать;

- несанкционированное копирование информации с использованием Интернет;

- превышение должностных полномочий при доступе к информации.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. ГОСТ 12.1.004-1999 ССБТ. Пожарная безопасность. Общие требования [Текст] - Взамен ГОСТ 12.1.004-91 ; Введ. 1999-01-01. - М. : Изд-во стандартов, 1999. - 19 с.

2. ГОСТ 12.1.005-2001 ССБТ. Общие санитарно-гигиенические требования к воздуху санитарной зоны [Текст] - Взамен ГОСТ 12.1.005-88 ; Введ. 2001-01-01. - М. : Изд-во стандартов, 2001. - 16 с.

3. ГОСТ 12.1.010-1999 ССБТ. Взрывобезопасность. Общие требования [Текст] - Взамен ГОСТ 12.1.010-76 ; Введ. 1999-01-01. - М. : Изд-во стандартов, 1999. - 17 с.

4. ГОСТ 12.1.044-2001 ССБТ. Пожаровзрывоопасность веществ и материалов. Номенклатура показателей и методы их определения [Текст] - Взамен ГОСТ 12.1.044-89 ; Введ. 2001-01-01. - М. : Изд-во стандартов,

5. 2001. - 17 с.

6. ГОСТ 12.0.003-74. Система стандартов безопасности труда. Опасные и вредные производственные факторы [Текст] ; Введ. 1976-01-01. - М. : Изд-во стандартов, 2004. - 18 с.

7. ГОСТ 12.2.032-78. Система стандартов безопасности труда. Рабочее место при выполнении работ сидя. Общие эргономические требования» [Текст] ; Введ. 1979-01-01. - М. : Изд-во стандартов, 2001 - 10 с.

8. СанПиН 2.2.2/2.4.1340-03. Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы [Текст].

9. Хомоненко, А. Д. Базы данных. Учебник для вузов [Текст] / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев. - СПб. : «Корона-Принт», 2004. - 736 с.: ил. - 5000 экз. - ISBN 5-7931-0284-1.

10. Герасименко, В. А. Основы защиты информации [Текст] / В. А. Герасименко, А. А. Малюк. - М.: МИФИ, 1997. - 537 с.; ил. - 2500 экз. - ISBN 5-88852-010-1.

11. Зима, В. М. Компьютерные сети и защита передаваемой информации [Текст] / В. М. Зима, А. А. Молдовян, Н. А. Молдовян. - СПб.: СПбГУ, 1998. - 328 с.: ил. - 1500 экз. - ISBN 5-6932-0272-1.

12. Мельников, В. В. Защита информации в компьютерных системах [Текст] / В. В. Мельников. - М.: Финансы и статистика, 1997. - 368 с.: ил. - 2000 экз. - ISBN 5-279-01631-4.

13. Романец, Ю. В. Защита информации в компьютерных системах и сетях [Текст] / Ю. В. Романец, П. А. Тимофеев, В. Ф. Шаньгин. - М.: Радио и связь, 1999. - 349 с.: ил.

14. Харин, Ю. С. Математические основы криптологии [Текст] / Ю. С. Харин, В. И. Берник, Г. В. Матвеев. - Мн.: БГУ, 1999. - 319 с.: ил. - 1500 экз. - ISBN 985-445-217-4.

15. Андон, Ф. А. Язык запросов SQL. Учебный курс [Текст] / Ф.А. Андон, В. М. Резниченко. - СПБ: Питер, 2006. - 416 с.: ил.

16. Рябко, Б. Я. Основы современной криптографии для специалистов в информационных технологиях [Текст] / Б. Я. Рябко, А. Н. Фионов. - М.: Горячая линия - Телеком, 2005. - 229 с.: ил.

17. Биячуев, Т. А., под ред. Л. Г. Осовецкого. Безопасность корпоративных сетей. Учебное пособие [Текст] / Т. А. Биячуев. - СПб: СПб ГУ ИТМО, 2004. - 161 с.: ил.

18. Садердинов, А. А. Информационная безопасность предприятия [Текст] / А. А. Садердинов. - М.: «Дашков и К», 2005. - 336 с.: ил.

19. Понамарев, В.С. Базы данных в Delphi 7. Самоучитель [Текст] / В. С. Понамарев. - СПБ: Питер, 2003. - 224 с.: ил. - ISBN 5-314-00194-2.

20. Игнатьев, В. А. Информационная безопасность современного коммерческого предприятия [Текст] / В. А. Игнатьев. - Старый Оскол: ТНТ, 2005. - 448 с.: ил. - ISBN 5-94178-070-2.

21. Громов, В. Н. Delphi 6/7. Базы данных и

22. приложения [Текст] / В. Н. Громов, С. П. Кандзюба - М.: ДиаСофт, 2002. - 261 c.: ил. - ISBN 5-93772-145-4.

23. Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си [Текст] / Б. Шнайер. - М.: Триумф, 2002. - 816 с. - 3000 экз. - ISBN 5-89392-055-4.

24. Чиртик, А. Delphi. Трюки и эффекты [Текст] / А. Чертик, В. Борисок, Ю. Корвель. - СПб: Питер, 2007. - 400 с.

25. Корняков, В. Программирование документов и других приложений MS Office в Delphi [Текст] / В, Корняков. - М.: Триумф, 2006. - 321 с.

26. Чипига, А. Ф. Информационная безопасность автоматизированных систем [Текст] : учеб. пособие для студентов вузов, обучающихся по специальностям в обл. информ. безопасности / А. Ф. Чипига. - М. : Гелиос АРМ, 2010. - 336 с.: ил. - 500 экз. - ISBN 978-5-85438-183-3.

27. Садердинов, А. А. Информационная безопасность предприятия [Текст] / А. А. Садердинов. - М. : «Дашков и К», 2005. - 336 с.: ил. - 2000 экз. - ISBN 5-3626-430-2.

ПРИЛОЖЕНИЕ А

Листинги исходных кодов основных функций и процедур

Исходный код функции добавления пользователей в базу данных

procedure TForm1.suiButton3Click(Sender: TObject);

var

j,user_id, name_id:integer;

access,login,pass:string;

SourseStream : TFileStream;

begin

//расшифровываем базу

SourseStream := TFileStream.Create('users.db', fmOpenReadWrite);

DecryptStream(SourseStream, SourseStream.Size, suiEdit6.Text);

SourseStream.Free;

user_id:=query1.findField('user_id').AsInteger;

query2.Close;

query2.SQL.clear;

query2.SQL.add('SELECT MAX(user_id) as max_id from users.db');

query2.Open;

access:='';

if query2.FindField('max_id').AsString = '' then user_id := 1 else

user_id := query2.findfield('max_id').AsInteger+1;

for j:=1 to 11 do begin

if suiCheckListBox2.Checked[j-1]=true then access:=access+'1'

else access:=access+'0';

end;

login:=suiEdit4.Text;

pass:=suiEdit5.Text;

if login<>'' then begin

query2.close;

query2.SQL.clear;

query2.SQL.add('INSERT into users.db (user_id,login,pass,access) values ('+inttostr(user_id)+','+#39+login+#39+','+#39+pass+#39+','+#39+access+#39+')');

query2.ExecSQL;

query1.close;

query1.Open;

Query1.Locate('user_id', user_id,[loCaseInsensitive]);

suiDBGrid1.Refresh;

//зашифровываем базу

SourseStream := TFileStream.Create('users.db', fmOpenReadWrite);

EncryptStream(SourseStream, SourseStream.Size, suiEdit6.Text);

SourseStream.Free;

showmessage('Пользователь успешно добавлен!');

end else showmessage('Для добавления пользователя необходимо ввести логин!');

Исходный код проведения авторизации пользователя

procedure TForm1.FormCreate(Sender: TObject);

var

SourseStream : TFileStream;

begin

///Расшифрование файла

//SourseStream := TFileStream.Create('users.db', fmOpenReadWrite);

//DecryptStream(SourseStream, SourseStream.Size, suiEdit6.Text);

//SourseStream.Free;

table1.Active:=true;

RxMemoryData1.LoadFromDataSet(table1,0,lmCopy);

table1.active:=false;

//Расшифровываем базу

SourseStream := TFileStream.Create('users.db', fmOpenReadWrite);

EncryptStream(SourseStream, SourseStream.Size, suiEdit6.Text);

SourseStream.Free;

RxMemoryData1.First;

suicombobox1.Clear;

with RxMemoryData1 do

begin

for i:=0 to RxMemoryData1.RecordCount-1 do

begin

suiComboBox1.Items.Add(RxMemoryData1.fieldbyname('Login').AsString);

RxMemoryData1.Next;

end;

end;

procedure TForm1.suiButton1Click(Sender: TObject);

var

access:string;

begin

RxMemoryData1.Locate('Login', suiComboBox1.Text,[loCaseInsensitive]);

if (suiComboBox1.Text <> '') AND (suiEdit1.text = RxMemoryData1.fieldbyname('pass').AsString) then begin

access:=RxMemoryData1.fieldbyname('access').AsString;

if access[1]='1' then form3.suiButton2.Enabled:=true else form3.suiButton2.Enabled:=false;

if access[2]='1' then form3.suiButton3.Enabled:=true else form3.suiButton3.Enabled:=false;

if access[3]='1' then form3.suiButton4.Enabled:=true else form3.suiButton4.Enabled:=false;

if access[6]='1' then form3.suiButton9.Enabled:=true else form3.suiButton9.Enabled:=false;

if access[7]='1' then form3.suiButton10.Enabled:=true else form3.suiButton10.Enabled:=false;

if access[8]='1' then form3.suiButton11.Enabled:=true else form3.suiButton11.Enabled:=false;

if access[9]='1' then form3.suiButton12.Enabled:=true else form3.suiButton12.Enabled:=false;

if access[10]='1' then form6.suiButton1.Enabled:=true else form6.suiButton1.Enabled:=false;

if access[11]='1' then form7.suiButton1.Enabled:=true else form7.suiButton1.Enabled:=false;

form3.show;

form1.Hide;

form3.FormStorage1.IniFileName:=suiCombobox1.text+'.ini';

form3.formstorage1.Active:=true;

form3.formstorage1.RestoreFormPlacement;

end else showMessage('Введен неверный пароль или предъявлен неверный идентификатор!');

end;

Исходный код процедуры считывания аппаратного идентификатора

function GetFlashDrivesCountA: Integer;

var

reg: TRegistry;

devices: TStringList;

i: integer;

usbRegKey:string;

begin

usbRegKey:='\SYSTEM\CurrentControlSet\Enum\';

Result:=0;

reg := TRegistry.Create;

devices := TStringList.Create;

try

reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey(usbRegKey, false) then

begin

reg.GetKeyNames(devices);

for i:=0 to devices.Count-1 do

if ExtractWord(2, devices[i], ['#','&']) = 'USBSTOR' then

begin

if reg.OpenKey(usbRegKey+'\'+devices[i]+'\#\Control',false) then

try

if reg.ReadInteger('Linked')=1 then

inc(Result);

except end;

end;

end

finally

reg.free;

devices.free;

end;

end;

function GetFlashDriveSN(num: integer): shortstring;

var

reg: TRegistry;

devices: TStringList;

i, j: integer;

begin

Result:='';

j:=0;

reg := TRegistry.Create;

devices := TStringList.Create;

try

reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey(usbRegKey, false) then

begin

reg.GetKeyNames(devices);

for i:=0 to devices.Count-1 do

if ExtractWord(2, devices[i], ['#','&']) = 'USBSTOR' then

begin

if reg.OpenKey(usbRegKey+'\'+devices[i]+'\#\Control',false) then

try

if reg.ReadInteger('Linked')=1 then

begin

inc(j);

if j=num then

begin

result := ExtractWord(7, devices[i], ['#','&']);

break;

end;

end;

except end;

end;

end

finally

reg.free;

devices.free;

end;

end;

function ExistsFlashWithSerialA(serial: shortstring): boolean;

var

reg: TRegistry;

devices: TStringList;

i: integer;

begin

Result:= false;

reg := TRegistry.Create;

devices := TStringList.Create;

try

reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey(usbRegKey, false) then

begin

reg.GetKeyNames(devices);

for i:=0 to devices.Count-1 do

if ExtractWord(2, devices[i], ['#','&']) = 'USBSTOR' then

begin

if reg.OpenKey(usbRegKey+'\'+devices[i]+'\#\Control',false) then

try

if reg.ReadInteger('Linked')=1 then

if Trim(ExtractWord(7, devices[i], ['#','&'])) = trim(serial) then

begin

Result := True;

break;

end

except end;

end;

end

finally

reg.free;

devices.free;

end;

end;

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.