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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 13:27   #1
SpaceXXX
Новичок
Джуниор
 
Регистрация: 18.08.2009
Сообщений: 1
По умолчанию Как узнать сведения о железе?

Здраствуйте. Пишу программу, и столкнулся с проблемой в процессе ее защиты от незаконного копирования. Я конечно понимаю, что любую программу можно взломать, но хотелось бы чтобы ее взломали не в первыую неделю...
Мысль такая - На компьютере, где установлена программа генерируется уникальный код, после чего этот код отправляется на сервер, там регистрируется код активации (из присланного кода). После чего код активации отправляется обратно на компьютер и сравнивается с сгенерированным кодом. Ну а дальше все просто: Если коды одинаковые - программа работает, если нет - досвидания...
Вроде все просто, но несколько проблем:
- Нужно привязать генерируемый код к какому-нибудь жележу, которое не меняет свои данные! (Процессор, жесткий и тд).
- Программа должна работать на всех серсиях Windows (начиная от 98).
Программа пишется на Delphi 7 (Другими языками владею посредственно)Просьба написать кусок текста программы, который поможет решить эту проблему. Заранее спасибо.

Мне бы хотябы код, который дает сведения о железе (лучше всего серийник жесткого диска, только не тома а самого винта).. а дальше я сам разберусь!
SpaceXXX вне форума Ответить с цитированием
Старый 18.08.2009, 14:54   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Код:
var
  VolumeSerialNumber : DWORD;
  MaximumComponentLength : DWORD;
  FileSystemFlags : DWORD;
  TheSerialNumber : String;
begin
  if GetVolumeInformation('C:\',nil,0,@VolumeSerialNumber,
     MaximumComponentLength,FileSystemFlags,nil,0)
     then
     begin
     TheSerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) +
                        IntToHex(LoWord(VolumeSerialNumber), 4);
     end; 
  ShowMessage('The drive serial number is: '+TheSerialNumber);
end;
Hollander вне форума Ответить с цитированием
Старый 18.08.2009, 15:24   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Hollander это как раз серийный номер тома, а не винта
SpaceXXX, посмотрите в DRKB, вроде бы там был код
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 18.08.2009, 15:27   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Есть комопнент LMDSysInfo из набора компонентов от LMD. Предоставляет полную инфу о компе
SERG1980 вне форума Ответить с цитированием
Старый 18.08.2009, 15:32   #5
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вроде бы LMD платный был...
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 18.08.2009, 15:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вроде бы LMD платный был...
Я и бесплатные встречал в сети. LMD5 у меня например бесплатный был.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2009, 17:01   #7
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

А ID компьютера Вам не подойдет?
http://www.programmersforum.ru/showt...ghlight=hostid
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 18.08.2009, 18:32   #8
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от SpaceXXX Посмотреть сообщение
...(лучше всего серийник жесткого диска, только не тома а самого винта).. а дальше я сам разберусь!
Может лучше материнской платы?
Подумайте о пользователе - он может поменять (добавить) жесткий, память, процессор - и каждый раз запрашивать очередной ключ активации?
При смене материнки во всяком случае винду переставлять наверняка придется.
И самое главное продумайте защиту кода проверяющего ключ активации
А то хакер заменит команду (asm) условного перехода в проге после проверки ключа на безусловный и все старания насмарку.
s.Creator вне форума Ответить с цитированием
Старый 18.08.2009, 20:20   #9
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

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

http://programmersforum.ru/showthread.php?t=54664
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 14.06.2010, 16:50   #10
toreo
Новичок
Джуниор
 
Регистрация: 12.02.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
Один хороший человек по имена Terran выкладывал тут свои модули для работы с системой. Очень даже подошли бы автору темы.

http://programmersforum.ru/showthread.php?t=54664
фуфло там а не модули, рег файл запустил с инфой зареганного компа, запустил прогу и работай. данные сбросятся в реестре тока при перезагрузке. короче для защиты программы использовать такое абсурд.
toreo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сведенья о системе и железе Djem1991 Общие вопросы Delphi 5 07.02.2009 21:38
Как сделать так,чтобы в StatusBar-е отображались некоторые сведения из БД???? Alexij БД в Delphi 1 16.06.2008 07:53