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

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

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

Студворк — интернет-сервис помощи студентам
Вот что смог нарыть на англо язычных порталах.
Но не понятно как сделать проверку этого 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2012, 15:40
Ответы с готовыми решениями:

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

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

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

19
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
22.01.2012, 16:05
one.inside, а теперь тоже самое только по-человечески. Чего вы хотите добится?
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 16:07
Нужно проверять переменную 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
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:19  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
one.inside, а теперь тоже самое только по-человечески. Чего вы хотите добится?
Допустим я даю человеку программу которая узнаёт id запущенного процесса.
Он мне копирует id процесса, при компилировании программы к которой идёт привязка я вставляю в код проверки ida процесса который мне передал человек.
При сходстве id программа запускается при не сходстве нет.
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 16:26
id процесса или id процессора?
если последнее, то в чём проблема? (предполагаю что cpuInfo это не тот id)
0
22.01.2012, 16:26
 Комментарий модератора 
one.inside, во-первых перестаньте писать жирными буквами - это раздражжает, а во-вторых определитесь: "процесс" и "процессор" - разные вещи...
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 16:28
а для получения PID есть это(win) http://msdn.microsoft.com/en-u... 85%29.aspx
0
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:30  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
id процесса или id процессора?
Цитата Сообщение от easybudda Посмотреть сообщение
определитесь: "процесс" и "процессор" - разные вещи...
ID процессора..
0
22.01.2012, 16:41

Не по теме:

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

0
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 16:53  [ТС]
Цитата Сообщение от I.M. Посмотреть сообщение
Не по теме:
А зачем Вам это вообще нужно-то? Что-то вроде защиты программы?
Да, так же более мощный способ защиты нежели id жёсткого диска и прочих устройств.
Модераторы переименуйте тему пожалуйста на:Привязка программы по ID процессора.
Описался.
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 17:30
я так понимаю речь идёт о уникальном 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
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:35  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
я так понимаю речь идёт о уникальном ID процессора, но имхо затея плохая:
Счастливые обладатели процессоров Pentium III (только их) могут определить серийный номер своего процессора (предварительно разрешив в BIOS его сообщение процессором, которое по умолчанию отключено) при помощи CPUID с EAX=3.
Т.е обладатели других процессоров не могут определить свои ID?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
22.01.2012, 17:36
one.inside, нету виндовса, проверить не на чем... Это не подойдёт?
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 17:38
Цитата Сообщение от one.inside Посмотреть сообщение
Т.е обладатели других процессоров не могут определить свои ID?
я не углублялся в изучение cpuid, но думаю смогут, только какимто другим способом.
Собственно это мелочи, при желании можно изучить, я думаю что никто не станет лезть в биос.

Добавлено через 1 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
one.inside, нету виндовса, проверить не на чем... Это не подойдёт?
мы это какраз обсуждаем) тотже cpuid только в обёртке от msdn
0
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:44  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
я не углублялся в изучение cpuid, но думаю смогут, только какимто другим способом.
Собственно это мелочи, при желании можно изучить, я думаю что никто не станет лезть в биос.
Так, плохо но своими силами не написать)
А если ид запущенного процесса?
Не располагаю инфой, есть предположения что он постоянно меняется.
Это так или нет?
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 17:47
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
0
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 17:57  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
К чему ещё можно привязать?
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.01.2012, 18:08
Цитата Сообщение от one.inside Посмотреть сообщение
К чему ещё можно привязать?
я в таких вопрос не силён, да и смысла особого не вижу.
лучше спросить у гугла
0
 Аватар для one.inside
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 50
22.01.2012, 18:12  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
я в таких вопрос не силён, да и смысла особого не вижу.
лучше спросить у гугла
Гугл кроме как привязку по hdd не даёт больше ничего)
А если материнская плата? или ID bios
http://msdn.microsoft.com/en-us/library/Aa394072
0
overlord_10
22.01.2012, 22:12
Цитата Сообщение от nxnx Посмотреть сообщение
к id процесса нету смысла делать привязку, при каждом запуске программы он разный(по моим наблюдениям)
Да, ID процесса изменяется после каждого запуска процесса, НО мы (я и инсайд) интересуемся правда ли, что ID ПРОЦЕССОРА не изменяется и что у каждого компьютера он разный??
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2012, 22:12
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru