Russian Qt Forum
Май 13, 2024, 21:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: id Процессора  (Прочитано 15470 раз)
jatsuk
Гость
« : Июль 09, 2011, 08:56 »

Доброе утро, перерыл весь форум но так и не нашел нормального кода.
Хочу сделать защуту от копирования (привязка к железу)
Нужно желательно именно к процессору или материнке...Как достать эту инфу (Например id процессора)
Как это сделать в Qt ?
Записан
Padawan
Гость
« Ответ #1 : Июль 09, 2011, 13:16 »

Кроссплатформенного такого не встречал.
Под win32 привязывался к серийнику жесткого диска. Брал за основу вот этот код: http://www.winsim.com/diskid32/
Записан
kowsan
Гость
« Ответ #2 : Июль 09, 2011, 13:17 »

Не советую тебе так делать. Есть материнки у которых все "To Be Filled By O.E.M."
Записан
jatsuk
Гость
« Ответ #3 : Июль 09, 2011, 13:42 »

Кроссплатформенного такого не встречал.
Под win32 привязывался к серийнику жесткого диска. Брал за основу вот этот код: http://www.winsim.com/diskid32/

Это конечно хорошо но как тут что то найти. Разбираться в этом очень долго..
Что не существует маленького кода для такой операции Непонимающий?
Записан
TheAthlete
Гость
« Ответ #4 : Июль 09, 2011, 13:55 »

Привет! Посмотри на www.wasm.ru
Там по-моему должно быть, только под win32 api
Записан
jatsuk
Гость
« Ответ #5 : Июль 09, 2011, 14:04 »

Просто не охото сильно заморачиваться с защитой, т.к. хорошей защиты она пока не заслуживает. Смеющийся

Я понял, что проще прикрутить к системе, чем к железу.
Например к имени пользователя windows или имени компьютера.(лучше конечно второе)

Есть какое нибудь средство Qt, которое дает эту информацию ??

Записан
Wlad_C
Гость
« Ответ #6 : Июль 09, 2011, 15:57 »

С помощью команды ассемблера CPUID можно получить информацию о процессоре. Но ID процессора там нет. Хотя и этой информации может быть достаточно для привязки программы.
Записан
ритт
Гость
« Ответ #7 : Июль 10, 2011, 08:28 »

Есть какое нибудь средство Qt, которое дает эту информацию ??

автомобили снабжают парашютами?
Записан
notnext
Гость
« Ответ #8 : Июль 12, 2011, 09:57 »

Может еще актуально и кому то будет полезно  Улыбающийся

Код:
QString HostInfo::getCPUID()
{
    QString CPUID;
    int b;
    for (int a = 0; a < 5; a++) {
        asm ( "mov %1, %%eax; cpuid; mov %%eax, %0;"
        :"=r"(b) /* output */
                :"r"(a) /* input */
                :"%eax","%ebx","%ecx","%edx" /* clobbered register */
                  );
        //        qDebug() << "The code " << a << " gives " << b;
        CPUID.append(QString("%1").arg(b));
    }
    return CPUID;
}
Записан
SASA
Гость
« Ответ #9 : Июль 12, 2011, 11:22 »

А как и где это компилить. студия 2008 - пишет ошибки. Как сделать чтоб заработало?
Записан
goonya
Гость
« Ответ #10 : Июль 12, 2011, 11:30 »

А как и где это компилить. студия 2008 - пишет ошибки. Как сделать чтоб заработало?


Это похоже встроенный ассемблер gcc. Могу посоветовать переписать команды под студию или воспользоваться mingw компилятором.
« Последнее редактирование: Июль 12, 2011, 11:36 от goonya » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #11 : Июль 12, 2011, 14:10 »

Например к имени пользователя windows или имени компьютера.(лучше конечно второе)
В свое время пришел к таким же выводам. Это легко делается на WinAPI так что может и нет смысла упираться с "кросс-платформенностью" и ассемблером. Ну для приличия не напрямую вызывайте а возьмите GetProcAddress и сохраните/покрутите
Записан
goonya
Гость
« Ответ #12 : Июль 12, 2011, 15:36 »

Например к имени пользователя windows или имени компьютера.(лучше конечно второе)
В свое время пришел к таким же выводам. Это легко делается на WinAPI так что может и нет смысла упираться с "кросс-платформенностью" и ассемблером. Ну для приличия не напрямую вызывайте а возьмите GetProcAddress и сохраните/покрутите

Если нужно привязать к пользователю (группе), я бы использовал SID (security identifier), тем более так и делается во многих проектах.
Записан
jatsuk
Гость
« Ответ #13 : Сентябрь 09, 2011, 08:02 »

Прошло лето и снова вернулся к этой теме  Подмигивающий
notnext, спасибо большое хоть один сразу работающий пример.... а то все остальные большие, непонятные и ещё невсегда компилятся.
Только я не понял что изьялось ? id ??
ладно буду разбираться и вспоминать мною нелюбимый ассемблер

Но все  равно почитаю про SID (security identifier) и попробую через имена пользователя

Записан
Yuriy
Гость
« Ответ #14 : Сентябрь 18, 2011, 01:30 »

Привет всем, я думаю что привязка к процу не самая лучшая мысль. В свое время купил программу Соло на клавиатуре через СМС, активировал версию под Linux и она работала на всех машинах, на которых были камни Celeron 1600-2100 МГц.

Я вот думаю может быть получить доступ к девайсу и зашить таблицы защиты на жесткий диск, в системную область, при этом в Linux все понятно, пусть активируют с правами суперпользователя, доступ через /dev, а как насчет винды?

А вообще кто-нибудь делал достойную защиту, например с ключами защиты ? Поделитесь , плиз!
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.