Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.11.2006, 15:38   #1
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Адрес: г. Конаково
Сообщений: 321
Репутация: 223

icq: 368-001-446
По умолчанию индентификация по оборудованию

Сразу скажу, что в WinApi не силён, поэтому не смейтесь.
Подскажите пожалуйста можно ли защитить программу от копирования по установленному оборудованию. У меня есть предположение, что процессор, либо материнская плата имеет свой уникальный Id. Если это возможно, подскажите. Заранее благодарен.
Трофимов Александр вне форума   Ответить с цитированием
Старый 28.11.2006, 17:50   #2
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Репутация: 626
По умолчанию

блин... я думал, что только я до этого додумался (ещё пол года назад у меня возникла эта идея)

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

Последний раз редактировалось zetrix; 28.11.2006 в 17:57.
zetrix вне форума   Ответить с цитированием
Старый 28.11.2006, 23:39   #3
VDLab
Embedder
Форумчанин
 
Аватар для VDLab
 
Регистрация: 01.11.2006
Адрес: UA
Сообщений: 68
Репутация: 56
По умолчанию

ну да, и стоит юзеру памяти добавить, или ,не дай бог, проц поменять, и все! платите снова денежку... хорошая идея!
__________________
[SHIFT] вправо, [SHIFT] влево считается [ESCAPE]ом и карается REBOOTом!
VDLab вне форума   Ответить с цитированием
Старый 29.11.2006, 12:12   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 14,751
Репутация: 3001
По умолчанию

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

если никто не ответит, поднимите позже тему, постараюсь поискать инфу.
Alar вне форума   Ответить с цитированием
Старый 30.11.2006, 07:43   #5
Morse
Новичок
 
Регистрация: 30.11.2006
Сообщений: 2
Репутация: 10
По умолчанию

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

по оборудованию навряд ли получиться...юзер обязательно что то да заменит. имхо
Morse вне форума   Ответить с цитированием
Старый 01.12.2006, 08:58   #6
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Адрес: г. Конаково
Сообщений: 321
Репутация: 223

icq: 368-001-446
По умолчанию

На некоторых компьютерах мне уже встречалось, что при загрузке компьютера пишется id процессора и id материнки(возможно Bios). Можно было -бы запомнить этот id в потом поискать в реестре где он находится. Проблема в том, что такие компы больше не попадались, а программа, которую надо защитить уже почти готова.
Трофимов Александр вне форума   Ответить с цитированием
Старый 01.12.2006, 14:37   #7
SuperVisor
Павел Сергеевич
Участник клуба
 
Регистрация: 05.11.2006
Адрес: г.Тюмень
Сообщений: 665
Репутация: 328

icq: 235938687 Отправить сообщение для SuperVisor с помощью AIM
По умолчанию

procedure TSysteinlnfoForm.GetCompInfo;
var
SystemIniFile:TIniFile;
RegFile:TReglniFile;
PathArray : array [0..255] of char;
OSVersion: TOSVersionlnfo;
begin
//Компьютер
Имя компьютера(string):=SystemIniFile.ReadString('boot.de scription',

' system, drv', 'Unknown'
)
SystemlniFile.Free;
RegFile:=TRegIniFile.Create('Softwa re');
RegFile.RootKey:=HKEY JLOCAL_MACHINE;
RegFile.OpenKey('hardware',false);
RegFile.OpenKey('DESCRIPTION', false) ;
RegFile.OpenKey('System',false);
RegFile.OpenKey('CentralProcessor', false);
Имя процессора(string):=RegFile.ReadString('0','Identifie r','Unknown'
Процессор MMX(string):=RegFile.ReadString('O','MMXIdenti fier','Unknown');
Поставщик-производитель(string):=RegFile.ReadString('0','Vendorlde ntifier','Unknown');
RegFile.CloseKey;
//OS
OSVersion.dwOSVersionlnfoSize := SizeOf(OSVersion);
if GetVersionEx(OSVersion) then
begin
Версия OS(string):= Format(''%d.%d (%d.%s)', [OSVersion.dwMajorVersion, OSVersion.dwMinorVersion, (OSVeraion.dwBuildNumber and $FFFF), OSVersion.szCSDVersion]);
case OSVersion.dwPlatformID of
VER PLATFORM WIN32S: Платформа Windows(string):= 'Windows 3.1';

VER_PIATFORM_WIN32_WINDOWS: Платформа Windows(string):= 'Windows 95';
VER_PLATFORM_WIN32_NT: Платформа Windows(string):= 'Windows NT';
else
Платформа Windows(string) := '';
end;
end;
RegFile.OpenKey('SOFTWARE',false);
RegFile.OpenKey('Microsoft',false);
RegFile.OpenKey('Windows',false);
Имя системы(string):=RegFile.ReadString('CurrentVersio n','ProductName','Unknown');
Имя организации(string):=
RegFile.ReadString('CurrentVersion' ,'RegisteredOrganization','Unknown' );
Имя владельца(string):=
RegFile.ReadString('CurrentVersion' ,'RegisteredOwner','Unknown');
Серийный номер(string):=
RegFile.ReadString('CurrentVersion' ,'Productld','Unknown');
RegFile.Free;
FillCharfPathArray, SizeOf(PathArray), #0);
GetWindowsDirectory(PathArray, 255) ;
Директория Windows(string):= Format('Is',[PathArray]);
FillChar(PathArray, SizeOf(PathArray), #0);
ExpandEnvironmentStrings('%TEMP%', PathArray, 255);
Директория Temp(string):=Format('%s',[PathArray]);
end;

Кто-то возможно сейчас скажет, что он это уже где-то видел, и будет прав!
Взято из "Delphi глазами хакера" М. Феленова. Там можно найти еще много полезностей!

__________________
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


23:16.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.