Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

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

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

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

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

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

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

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

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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск