|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Прошу помощи как вывести hwid
Можно ли как то реализовать что бы собирался хвид и выводился в программе?
|
#2
|
||||
|
||||
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
|
|||
|
|||
Спасибо получилось а как собрать инфу о процессоре и тд
и выводить премерно в такой хвид PJ.3IB1/59rmImUcBiK7jVNqEpY= |
#4
|
||||
|
||||
Можно зашифровать серийник, хотя бы XORом
Добавлено позже: Цитата:
З.Ы. Для чего это надо, нужен ли уникальный ID данного компьютера или просто уникальная строчка, к железу не привязанная, просветите, может всё проще на самом деле. Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 24.09.2013 в 18:46. |
#5
|
|||
|
|||
есть программа она передаёт на сервер хвид.
Хочу понять с чего собирает хвид она и сам собрать. |
#6
|
||||
|
||||
Здесь скорее всего тупик, прога может собирать HWID из чего угодно и по своему алгоритму, вероятно результат разбора будет нулевой.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
||||
|
||||
Цитата:
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 24.09.2013 в 19:22. |
#8
|
|||
|
|||
CPU+MAC+HDD+имя компьютера
как мне их собрать? где почитать Заранее спасибо. |
#9
|
||||
|
||||
Цитата:
имя компьютера - Код:
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; Код:
function GetCPUID: dword; const Key = $90909090; begin asm mov eax, 1 CPUID mov GetCPUID{Result}, eax end; Код:
Данный пример составлен на основе статьи на сайте 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; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
|||
|
|||
Прошу помощи а как эти коды объединить и вывести общий их хвид?
|
#11
|
||||
|
||||
Если для себя - преобразовать в строки и сложить их.
Если именно как в имеющейся программе - надо анализировать программу, я уже писал. Может они вообще MD5 от этой информации считают и переводят в Base64. Без анализа кода этого не узнать (кроме случая, когда информация не защищается никак вообще). jmp $ ; Happy End! The Cake Is A Lie. |
#12
|
||||
|
||||
Цитата:
Тему должно закрывать Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 24.09.2013 в 22:00. Причина: исправление орфографических ашипок :) |
#13
|
|||
|
|||
SHA1(CPUID + GetComputerNameW + GetAdaptersInfo(MAC) + GetVolumeNameForVolumeMountPointW(GetVolumePathNam eW(GetWindowsDirectoryW())))
по такой схеме собирается хвид |
#14
|
||||
|
||||
Ну так посчитай SHA-1 и переведи в Base64.
jmp $ ; Happy End! The Cake Is A Lie. |