Russian Qt Forum

Qt => Общие вопросы => Тема начата: jatsuk от Июль 09, 2011, 08:56



Название: id Процессора
Отправлено: jatsuk от Июль 09, 2011, 08:56
Доброе утро, перерыл весь форум но так и не нашел нормального кода.
Хочу сделать защуту от копирования (привязка к железу)
Нужно желательно именно к процессору или материнке...Как достать эту инфу (Например id процессора)
Как это сделать в Qt ?


Название: Re: id Процессора
Отправлено: Padawan от Июль 09, 2011, 13:16
Кроссплатформенного такого не встречал.
Под win32 привязывался к серийнику жесткого диска. Брал за основу вот этот код: http://www.winsim.com/diskid32/


Название: Re: id Процессора
Отправлено: kowsan от Июль 09, 2011, 13:17
Не советую тебе так делать. Есть материнки у которых все "To Be Filled By O.E.M."


Название: Re: id Процессора
Отправлено: jatsuk от Июль 09, 2011, 13:42
Кроссплатформенного такого не встречал.
Под win32 привязывался к серийнику жесткого диска. Брал за основу вот этот код: http://www.winsim.com/diskid32/

Это конечно хорошо но как тут что то найти. Разбираться в этом очень долго..
Что не существует маленького кода для такой операции ????


Название: Re: id Процессора
Отправлено: TheAthlete от Июль 09, 2011, 13:55
Привет! Посмотри на www.wasm.ru
Там по-моему должно быть, только под win32 api


Название: Re: id Процессора
Отправлено: jatsuk от Июль 09, 2011, 14:04
Просто не охото сильно заморачиваться с защитой, т.к. хорошей защиты она пока не заслуживает. ;D

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

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



Название: Re: id Процессора
Отправлено: Wlad_C от Июль 09, 2011, 15:57
С помощью команды ассемблера CPUID можно получить информацию о процессоре. Но ID процессора там нет. Хотя и этой информации может быть достаточно для привязки программы.


Название: Re: id Процессора
Отправлено: ритт от Июль 10, 2011, 08:28
Есть какое нибудь средство Qt, которое дает эту информацию ??

автомобили снабжают парашютами?


Название: Re: id Процессора
Отправлено: notnext от Июль 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;
}


Название: Re: id Процессора
Отправлено: SASA от Июль 12, 2011, 11:22
А как и где это компилить. студия 2008 - пишет ошибки. Как сделать чтоб заработало?


Название: Re: id Процессора
Отправлено: goonya от Июль 12, 2011, 11:30
А как и где это компилить. студия 2008 - пишет ошибки. Как сделать чтоб заработало?


Это похоже встроенный ассемблер gcc. Могу посоветовать переписать команды под студию или воспользоваться mingw компилятором.


Название: Re: id Процессора
Отправлено: Igors от Июль 12, 2011, 14:10
Например к имени пользователя windows или имени компьютера.(лучше конечно второе)
В свое время пришел к таким же выводам. Это легко делается на WinAPI так что может и нет смысла упираться с "кросс-платформенностью" и ассемблером. Ну для приличия не напрямую вызывайте а возьмите GetProcAddress и сохраните/покрутите


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

Если нужно привязать к пользователю (группе), я бы использовал SID (security identifier), тем более так и делается во многих проектах.


Название: Re: id Процессора
Отправлено: jatsuk от Сентябрь 09, 2011, 08:02
Прошло лето и снова вернулся к этой теме  ;)
notnext, спасибо большое хоть один сразу работающий пример.... а то все остальные большие, непонятные и ещё невсегда компилятся.
Только я не понял что изьялось ? id ??
ладно буду разбираться и вспоминать мною нелюбимый ассемблер

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



Название: Re: id Процессора
Отправлено: Yuriy от Сентябрь 18, 2011, 01:30
Привет всем, я думаю что привязка к процу не самая лучшая мысль. В свое время купил программу Соло на клавиатуре через СМС, активировал версию под Linux и она работала на всех машинах, на которых были камни Celeron 1600-2100 МГц.

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

А вообще кто-нибудь делал достойную защиту, например с ключами защиты ? Поделитесь , плиз!


Название: Re: id Процессора
Отправлено: Prm от Сентябрь 19, 2011, 11:57
Смотри в сторону http://www.guardant.ru/ (http://www.guardant.ru/). Многие производители ПО используют данные ключи.


Название: Re: id Процессора
Отправлено: Yuriy от Сентябрь 19, 2011, 23:55
Вот интересная компания. Говорят SDK под Linux/MacOS пока нет, но вроде бы как можно приделать.

http://www.hid-key.ru/
Цены подешевле, SDK бесплатно. А у guardant 550 рублей, как я понял. Заказал 10 ключей, буду прошивать под Linux/MacOS тоже пробовать.