Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.09.2013, 16:16
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Прошу помощи как вывести hwid

Можно ли как то реализовать что бы собирался хвид и выводился в программе?
Ответить с цитированием
  #2  
Старый 24.09.2013, 16:31
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

GetVolumeInformation вам в помощь

Добавлено позже:

а вот как ей пользоваться, бросьте только на форму поле ввода (Edit1)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 id, a, b: DWORD;
 Buffer: array [0..255] of char;
begin
 GetVolumeInformation('c:/', Buffer, sizeof(Buffer), @id, a, b, nil, 0);
 edit1.text:= IntToStr(id);
end;

Последний раз редактировалось Alegun, 24.09.2013 в 17:02. Причина: дополнение
Ответить с цитированием
  #3  
Старый 24.09.2013, 17:42
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо получилось а как собрать инфу о процессоре и тд
и выводить премерно в такой хвид
PJ.3IB1/59rmImUcBiK7jVNqEpY=
Ответить с цитированием
  #4  
Старый 24.09.2013, 18:09
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно зашифровать серийник, хотя бы XORом

Добавлено позже:

Цитата:
...а как собрать инфу о процессоре и тд...
есть куча компонентов для сбора информации, например, MiTeC System Information, может помочь

З.Ы. Для чего это надо, нужен ли уникальный ID данного компьютера или просто уникальная строчка, к железу не привязанная, просветите, может всё проще на самом деле.

Последний раз редактировалось Alegun, 24.09.2013 в 18:46.
Ответить с цитированием
  #5  
Старый 24.09.2013, 18:49
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

есть программа она передаёт на сервер хвид.
Хочу понять с чего собирает хвид она и сам собрать.
Ответить с цитированием
  #6  
Старый 24.09.2013, 18:56
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь скорее всего тупик, прога может собирать HWID из чего угодно и по своему алгоритму, вероятно результат разбора будет нулевой.
Ответить с цитированием
  #7  
Старый 24.09.2013, 19:20
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Сообщение от ade0t
есть программа она передаёт на сервер хвид.
Хочу понять с чего собирает хвид она и сам собрать.
Ну во-первых, приведенная строка - типичный Base64. Следовательно, надо раскодировать этот Base64. Хотя алфавит для Base64 может быть не стандартный. А это значит, что надо посмотреть в коде стороннего приложения. После этого надо будет либо долго вдуплять, пытаясь понять, что же там за байты (которые могут быть и шифрованы), либо анализировать код построения этой строки. Иными словами, либо заниматься реверс-инженерингом, либо
Цитата:
результат разбора будет нулевой.
А в реверс идти с минимальными знаниями бесполезно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.09.2013 в 19:22.
Ответить с цитированием
  #8  
Старый 24.09.2013, 19:39
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

CPU+MAC+HDD+имя компьютера
как мне их собрать? где почитать
Заранее спасибо.
Ответить с цитированием
  #9  
Старый 24.09.2013, 20:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от ade0t
CPU+MAC+HDD+имя компьютера...

имя компьютера -
Код:
function GetComputerNetName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
  Result := buffer
else
  Result := ''
end;
CPU -
Код:
function GetCPUID: dword; 
const Key = $90909090; 
begin 
 asm 
  mov eax, 1 
  CPUID 
  mov GetCPUID{Result}, eax 
end;
MAC -
Код:
Данный пример составлен на основе статьи на сайте Borland: 
http://community.borland.com/article/0,1410,26040,00.html 

uses NB30; 

function GetAdapterInfo(Lana: Char): String; 
var 
Adapter: TAdapterStatus; 
NCB: TNCB; 
begin 
FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBRESET); 
NCB.ncb_lana_num := Lana; 
if Netbios(@NCB) <> Char(NRC_GOODRET) then 
begin 
Result := 'mac not found'; 
Exit; 
end; 

FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBASTAT); 
NCB.ncb_lana_num := Lana; 
NCB.ncb_callname := '*'; 

FillChar(Adapter, SizeOf(Adapter), 0); 
NCB.ncb_buffer := @Adapter; 
NCB.ncb_length := SizeOf(Adapter); 
if Netbios(@NCB) <> Char(NRC_GOODRET) then 
begin 
Result:= 'mac not found'; 
Exit; 
end; 
Result := 
IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[5]), 2); 
end; 

function GetMACAddress: string; 
var 
AdapterList: TLanaEnum; 
NCB: TNCB; 
begin 
FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBENUM); 
NCB.ncb_buffer := @AdapterList; 
NCB.ncb_length := SizeOf(AdapterList); 
Netbios(@NCB); 
if Byte(AdapterList.length) > 0 then 
Result := GetAdapterInfo(AdapterList.lana[0]) 
else 
Result := 'mac not found'; 
end;
а HDD уже был в первых постах
Ответить с цитированием
  #10  
Старый 24.09.2013, 21:18
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Прошу помощи а как эти коды объединить и вывести общий их хвид?
Ответить с цитированием
  #11  
Старый 24.09.2013, 21:27
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Если для себя - преобразовать в строки и сложить их.
Если именно как в имеющейся программе - надо анализировать программу, я уже писал. Может они вообще MD5 от этой информации считают и переводят в Base64. Без анализа кода этого не узнать (кроме случая, когда информация не защищается никак вообще).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #12  
Старый 24.09.2013, 21:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от ade0t
Прошу помощи а как эти коды объединить и вывести общий их хвид?
Ну, уважаемый ade0t (извнт, с полной увагой к вам :-), вы - забавный человек! Bargest же полностью показал бесмысленность потуг по подбору содержимого строки, которую вы почему-то упорно продолжаете называть как HWID, хотя к нему она не имеет отношения вообще! Вся собранная информация всё равно будет выглядеть не так как хотелось бы, потому как инфа о железе это одно, а алгоритм её упаковки пред отправкой, это, как говорится в одном прибрежном городе, две большие разницы. Угадать это невозможно! Тем более, не поверите, данной темой мы нарушаем ПФ, пункт 2.7, такие вот пироги.

Тему должно закрывать

Последний раз редактировалось Alegun, 24.09.2013 в 22:00. Причина: исправление орфографических ашипок :)
Ответить с цитированием
  #13  
Старый 24.09.2013, 21:41
ade0t ade0t вне форума
Прохожий
 
Регистрация: 24.09.2013
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

SHA1(CPUID + GetComputerNameW + GetAdaptersInfo(MAC) + GetVolumeNameForVolumeMountPointW(GetVolumePathNam eW(GetWindowsDirectoryW())))
по такой схеме собирается хвид
Ответить с цитированием
  #14  
Старый 24.09.2013, 23:29
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Ну так посчитай SHA-1 и переведи в Base64.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter