Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
1

Привязка программы по ID процесса

22.01.2012, 15:40. Показов 5280. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот что смог нарыть на англо язычных порталах.
Но не понятно как сделать проверку этого ID в самой программе.

Переменная:
C++
1
char cpuBrand[13]
И так, вот программное название процессора:
C++
1
2
3
4
5
6
7
8
9
10
11
"AuthenticAMD" это AMD
"CentaurHauls" это Centaur
"CyrixInstead" это Cyrix
"GenuineIntel" это Intel
"GenuineTMx86", "TransmetaCPU" это Transmeta
"Geode by NSC" это National Semiconductor
"NexGenDriven" это NexGen
"RiseRiseRise" это Rise
"SiS SiS SiS " это SiS
"UMC UMC UMC " это UMC
"VIA VIA VIA " это VIA
Получение ID процессора:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define cpuid  __asm _emit 0x0F __asm _emit 0xA2
 
    UINT cpuInfo = 0;// to get params
 
    __asm
      {
           xor eax, eax
           cpuid
           mov dword ptr cpuBrand,ebx 
           mov dword ptr cpuBrand+4,edx 
           mov dword ptr cpuBrand+8,ecx
           mov eax, 1
           cpuid
           mov cpuInfo,eax
    }
 
    UINT cpuModel = ((cpuInfo & 0x000000F0) >> 4);
Вывод в текст:
C++
1
2
3
char procinfo[30] = {0};
sprintf(procinfo,"Brand : %s  Model: %d",cpuBrand,cpuModel);
MessageBoxA(NULL,procinfo,"Proc Info",0);
Заранее спасибо

Добавлено через 1 час 29 минут
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2012, 15:40
Ответы с готовыми решениями:

Порождение нового процесса и запуск программы в рамках порожденного процесса
Цель работы. Изучение программных средств создания процессов, а также простейших способов обмена...

"Привязка" окон дочерних процессов к окну главного процесса
Всем доброго дня. Вопрос знатокам. Есть VCL приложение (С++ Builder XE). В этом приложении...

Привязка программы по ID
Здравствуйте таковй вопрос программа для игры что бы получить VIP функции во 2 вкладке программы...

Привязка программы к C# приложению
Собственно как заставить программу закрываться если умирает созданное нами С# приложение? Пока...

19
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
22.01.2012, 16:05 2
one.inside, а теперь тоже самое только по-человечески. Чего вы хотите добится?
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 16:07 3
Нужно проверять переменную cpuBrand ? а в чём собственно проблема?
правдо помоему имелось в виду другой ид.
strcmp() непойдёт?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <string.h>
 
int main(void){
    
    unsigned int cpuInfo = 0;
    char cpuBrand[13];
    cpuBrand[12]=0;
    asm(
    "xor %%eax,%%eax\n"
    "cpuid\n"
    "movl %%ebx,%1\n" 
    "movl %%edx,%2\n"
    "mov %%ecx,%3\n"
    "movl $1,%%eax\n"
    "cpuid\n"
    "movl %%eax,%0\n":"=r"(cpuInfo):"m"(cpuBrand[0]),"m"(cpuBrand[4]),"m"(cpuBrand[8]),"0"(cpuInfo):"eax","ebx","ecx","edx"
    );
    unsigned int cpuModel = ((cpuInfo & 0x000000F0) >> 4);
    printf("Brand: %s, cpuInfo: %u, cpuModel: %u\n",cpuBrand,cpuInfo,cpuModel);
    if (strcmp(cpuBrand,"GenuineIntel")==0)
    {
        printf("INTEL DETECTED!!!\n");
        /* code here */
        
    }
    
return 0;
}
http://liveworkspace.org/code/... 0629a63739
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:19  [ТС] 4
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
one.inside, а теперь тоже самое только по-человечески. Чего вы хотите добится?
Допустим я даю человеку программу которая узнаёт id запущенного процесса.
Он мне копирует id процесса, при компилировании программы к которой идёт привязка я вставляю в код проверки ida процесса который мне передал человек.
При сходстве id программа запускается при не сходстве нет.
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 16:26 5
id процесса или id процессора?
если последнее, то в чём проблема? (предполагаю что cpuInfo это не тот id)
0
easybudda
22.01.2012, 16:26
  #6
 Комментарий модератора 
one.inside, во-первых перестаньте писать жирными буквами - это раздражжает, а во-вторых определитесь: "процесс" и "процессор" - разные вещи...
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 16:28 7
а для получения PID есть это(win) http://msdn.microsoft.com/en-u... 85%29.aspx
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:30  [ТС] 8
Цитата Сообщение от nxnx Посмотреть сообщение
id процесса или id процессора?
Цитата Сообщение от easybudda Посмотреть сообщение
определитесь: "процесс" и "процессор" - разные вещи...
ID процессора..
0
I.M.
22.01.2012, 16:41
  #9

Не по теме:

А зачем Вам это вообще нужно-то? Что-то вроде защиты программы?

0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:53  [ТС] 10
Цитата Сообщение от I.M. Посмотреть сообщение
Не по теме:
А зачем Вам это вообще нужно-то? Что-то вроде защиты программы?
Да, так же более мощный способ защиты нежели id жёсткого диска и прочих устройств.
Модераторы переименуйте тему пожалуйста на:Привязка программы по ID процессора.
Описался.
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 17:30 11
я так понимаю речь идёт о уникальном ID процессора, но имхо затея плохая:

Счастливые обладатели процессоров Pentium III (только их) могут определить серийный номер своего процессора (предварительно разрешив в BIOS его сообщение процессором, которое по умолчанию отключено) при помощи CPUID с EAX=3.
(источник http://www.wasm.ru/print.php?article=hardzen)

Как я понял эта команда выдает нужный ID при eax==3:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
 
int main(void){
    
    unsigned int ecx,edx;   
    asm(
    "movl $3,%%eax\n"
    "cpuid\n"    
    "movl %%ecx,%0\n"
    "movl %%edx,%1":"=r"(ecx),"=r"(edx)::"eax","ebx","ecx","edx"
    );
    printf("ECX: %u\nEDX: %u\n",ecx,edx);
    
    
return 0;
}
http://liveworkspace.org/code/... 863d503e09
(переменная cpuInfo из предыдущего примера у меня точно такаяже как на lws, и она не уникальная-думаю это не то что нужно)
не думаю что ктото будет лезть в биос ради того чтобы запускать программу с такой привязкой
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:35  [ТС] 12
Цитата Сообщение от nxnx Посмотреть сообщение
я так понимаю речь идёт о уникальном ID процессора, но имхо затея плохая:
Счастливые обладатели процессоров Pentium III (только их) могут определить серийный номер своего процессора (предварительно разрешив в BIOS его сообщение процессором, которое по умолчанию отключено) при помощи CPUID с EAX=3.
Т.е обладатели других процессоров не могут определить свои ID?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.01.2012, 17:36 13
one.inside, нету виндовса, проверить не на чем... Это не подойдёт?
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 17:38 14
Цитата Сообщение от one.inside Посмотреть сообщение
Т.е обладатели других процессоров не могут определить свои ID?
я не углублялся в изучение cpuid, но думаю смогут, только какимто другим способом.
Собственно это мелочи, при желании можно изучить, я думаю что никто не станет лезть в биос.

Добавлено через 1 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
one.inside, нету виндовса, проверить не на чем... Это не подойдёт?
мы это какраз обсуждаем) тотже cpuid только в обёртке от msdn
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:44  [ТС] 15
Цитата Сообщение от nxnx Посмотреть сообщение
я не углублялся в изучение cpuid, но думаю смогут, только какимто другим способом.
Собственно это мелочи, при желании можно изучить, я думаю что никто не станет лезть в биос.
Так, плохо но своими силами не написать)
А если ид запущенного процесса?
Не располагаю инфой, есть предположения что он постоянно меняется.
Это так или нет?
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 17:47 16
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:57  [ТС] 17
Цитата Сообщение от nxnx Посмотреть сообщение
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
К чему ещё можно привязать?
0
Формучанин
364 / 294 / 42
Регистрация: 02.11.2010
Сообщений: 1,242
22.01.2012, 18:08 18
Цитата Сообщение от one.inside Посмотреть сообщение
К чему ещё можно привязать?
я в таких вопрос не силён, да и смысла особого не вижу.
лучше спросить у гугла
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 18:12  [ТС] 19
Цитата Сообщение от nxnx Посмотреть сообщение
я в таких вопрос не силён, да и смысла особого не вижу.
лучше спросить у гугла
Гугл кроме как привязку по hdd не даёт больше ничего)
А если материнская плата? или ID bios
http://msdn.microsoft.com/en-us/library/Aa394072
0
overlord_10
22.01.2012, 22:12 20
Цитата Сообщение от nxnx Посмотреть сообщение
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
Да, ID процесса изменяется после каждого запуска процесса, НО мы (я и инсайд) интересуемся правда ли, что ID ПРОЦЕССОРА не изменяется и что у каждого компьютера он разный??
22.01.2012, 22:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2012, 22:12
Помогаю со студенческими работами здесь

Привязка программы к компьютеру
искал в интернете и нашел множество способов нахождения: mac-адрес сетевой карты, жесткий диск,...

Интерфейс программы (привязка)
В Windows 7 создал програмку, потом открыл ее в XP, и интерфейс поменялся на системный( XP )....

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

Привязка программы к железу
Доброго всем времени суток. Подскажите пожайлуста как привязать программу к флеш карте (SD)....

Привязка программы к железу
Нужна привязка программы к железу. Вот так я хочу реализовать На форме есть 1 button и 1...

Привязка программы к компьютеру
Здравствуйте. Пришел сегодня на работу и выдали задание, обеспечить наше ПО функцией защиты....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru