Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > уникальный код компьютера с++, как определить его


Автор: Agafonov 31.7.2006, 15:56
всем привет, подскажите пожалуйста как определить уникальный код компьютера
CRC биоса
s/n винчестера
...
чем больше тем лучше

для того чтобы привязать программу к конкретному компьютеру, для её защиты от копирования на другие
GUID не подходит т.к. надо чтобы код определялся из железа при каждом запуске и был каждый раз одинаков
особо благодарен буду за с++ функцию или ADO, кусок кода...

заранее благодарен 

Автор: _hunter 31.7.2006, 16:17
фпоиск! 

Автор: Agafonov 31.7.2006, 16:44
пробывал, или мозги кипят или, вобщем не получается в поиске найти находил упоминания рассказы о защите, а так чтобы функцию или код не смог найти... smile  

Автор: _hunter 31.7.2006, 17:17
вполне возможно что кода нет.
значит его нужно написать самому. 

Автор: Agafonov 31.7.2006, 17:19
а возможно хоть чтонибуть на с++ функцию или в ADO чтонибуть за что зацепиться

спасибо 

Автор: NextAlex 31.7.2006, 19:48
серийник винта
http://www.winsim.com/diskid32/diskid32.html 

Автор: Rockie 31.7.2006, 20:19
Код
// TestVolume.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{

char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
DWORD VSNumber;
DWORD MCLength;
DWORD FileSF;

if (GetVolumeInformation("C:\\",NameBuffer, sizeof(NameBuffer),
&VSNumber,&MCLength,&FileSF,SysNameBuffer,sizeof(SysNameBuffer)))
{
cout <<  NameBuffer << endl;
cout <<  SysNameBuffer << endl;
cout <<  VSNumber << endl;
}
}

автор Каев Артем

но я не уверен что у меня выдает то, что надо 

Автор: Agafonov 2.8.2006, 16:08
NextAlex, Rockie

ОГРОМНОЕ спасибо, плюсик нажать не даёт (нет 100 сообщений) smile


Rockie 
к сожалению нормального "stdafx.h" я не нашол и отключил
без него работает, но непонятно, а именно получаются вразумительные 

VSNumber;
FileSF;

но понять что это за цифры неполучилось, они не совпадают с извесными мне номерами моего винчестера, подскажите пожалуйста, что это за цифири получаются

NextAlex
Спасибо за ссылку, скачал, пытаюсь разобраться в коде



может по ещё каким деталкам у кого есть, процессор, мать... 
ВСЕМ кто чтонибуть ответил заранее СПАСИБО

Автор: Agafonov 2.8.2006, 19:18
наиболее понятный код такой

Код

DWORD SerialNumber;
GetVolumeInformation(NULL, NULL, NULL, &SerialNumber, NULL, NULL, NULL, NULL);


но он выводит странный код не тот что есть


программа по ссылке (ехе-шник) 
NextAlex, http://www.winsim.com/diskid32/diskid32.html  
даёт верные значения, но трудно разобраться в коде  smile 

возможно есть пример использования этой проги буду благодарен за мини проект в rar 
проет того ехе не смог найти по ссылке smile

Автор: bel_nikita 2.8.2006, 21:51
могу выложить код извлечения инфы о носителях, но под Виндовозом работать не будет. там запись-чтения в порты производится

Добавлено @ 21:53 
что касается процессора, там через CPUID вычитывается. только на современных процессорах не тестировал

Автор: Agafonov 3.8.2006, 10:26
bel_nikita

мне под винды и современные машинки надо smile

но всёравно СПАСИБО за участие

Автор: Agafonov 3.8.2006, 13:05
можетбыть ктонибуть из Гуру сможет разобраться в коде 

http://www.winsim.com/diskid32/diskid32.cpp 

минимум чтобы заработал у меня никак не получается даже откомпелировать его  smile 
но exe-шник автора работает и даёт верные значения в отличае от API

буду очень благодарен если ктонибуть глянет год и сделает его компелируемым под с++ билдер например кнопка жмём появляется номер буду ОЧЕНЬ благодарен  smile 

Автор: Damarus 3.8.2006, 14:41
Цитата(Agafonov @ 3.8.2006,  14:05)
минимум чтобы заработал у меня никак не получается даже откомпелировать его  smile 
но exe-шник автора работает и даёт верные значения в отличае от API

Вот проект для VS, нормально работает. Как подключить исходники к билдеру думаю разберёшся.

Автор: Swine 15.11.2006, 12:09
Цитата(bel_nikita @ 2.8.2006,  21:51)
могу выложить код извлечения инфы о носителях, но под Виндовозом работать не будет. там запись-чтения в порты производится

Добавлено @ 21:53 
что касается процессора, там через CPUID вычитывается. только на современных процессорах не тестировал

Если не трудно и предложение все еще в силе, выложите smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)