Питання # 201 ... б отримати серійний номер материнської плати вашого комп'ютера яким ... (робота з

Вітаю!
Хотілося б отримати серійний номер материнської плати вашого комп'ютера якимось універсальним способом для захисту програмного засобу! Працюю під Delphi6, моя програма ймовірно буде використовуватися навіть на платформі Win95

Судити про якість захисту, заснованої на цих даних не буду, так як все залежить від Вас і тільки від вас

Відповідь # 2. Відповідає експерт: Матвєєв Ігор Володимирович

А щодо материнської плати - є два можливих способу отримати її серійний номер:

1) Пошукати в BIOS. При завантаженні комп'ютера POST виводить виробника материнської плати, треба думати, що і серійний номер теж читається. Де конкретно шукати цей номер я не знаю - шукайте самі. Тут ще труднощі з доступом до цієї пам'яті, по-моєму під NT просто так прочитати її не дадуть.

2) Скористатися засобами WMI, вона збирає дуже багато інформації про комп'ютер. Написав Вам невеличкий приклад з отримання інформації про материнську плату, правда на VisualBasic. Це можна перевести і на Delphi. І ще, не знаю у кого як, але у мене вона все-одно не видала серійного номера, може у Вас видасть.
Див. Прикріплений файл.
До відповіді прикріплений файл. Завантажити »(термін зберігання: 60 днів з моменту відправлення відповіді)

Відповідь # 3. Відповідає експерт: Новаковський Юрій Аврамович

Привіт, RedMask!
Від себе можу додати, що якщо зловмисник знайде в ресурсах або ще де небуть то значення з яким проводиться порівняння, то песець захисту.
Що б цього уникнути застосуєте хешуванні-значення отримане за допомогою односторонніх операцій.

Тримайте бібліотеку (прикріплений файл).

З секретного значення отримуєте хешировать значення, записуєте його хоч "відкритим текстом", це набір байтів, при перевірці перевіряється значення також хешіруете і порівнюєте два хешировать значення.
Маючи хешировать значення і алгоритм хешування початкове значення отримати неможливо, тільки перебором.
Удачі вам!
До відповіді прикріплений файл. Завантажити »(термін зберігання: 60 днів з моменту відправлення відповіді)

Міні-форум питання

Це, напевно, пов'язано з тим, що проект був створений для .NET. Але це не важливо, головне принцип. Я написав на VisualBasic, тому що у нього будь-яка змінна - це OleVariant і не треба визначати його тип.