Форум: "Система";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
ВнизКак узнать SerialNumber HDD без API(без GetVolumeInformation)? Найти похожие ветки
← →
sucer (2003-04-04 15:48) [0]----------
Вообщем я хочу сделать программу которая для регестации
требовала бы ключ.Пооэтому мне нужен серийный номер ЖД.
Если,его вычислять через API(GetVolumeInformation и.т.п.)
или реестр,то SoftIce можно поставить Break point на эту
процедуру и поймать,а потом написать crack.Или вообще
можно при помощи HIVIEW вычилит где программа обращяется
к GetVolumeIformation и написать crack.А я хочу усложнить
хакерам взлом.
--------
Как узнать серийник при помощи АССЕМБЛЕРА,не пребигая к
фукциям API?
← →
Cobalt (2003-04-04 20:03) [1]в ХР - невозможно (ИМХО, разве что, вломишься в ядро системы (как?), и (на ассемблере?) будешь читать напрямую, безо всяких там драйверов, из контроллера)
← →
Alex Konshin (2003-04-05 23:05) [2]Почему-то люди свято уверены, что ассемблер - панацея.
Не прибегая к функциям API у тебя ничего не получится, хоть на ассемблере, хоть еще на чем. Ну да, можно подглядеть в ntdll.dll как происходит переход в ядро, но прерывания ловятся ничуть не хуже, чем вызовы API, ну и какая разница?
Но я тебе больше скажу - GetVolumeInformation НЕ ВОЗВРАЩАЕТ серийный номер винчестера.
← →
aanco (2003-04-06 18:22) [3]Alexу от Юстаса: "Функция GetVolumeInformation возвращает серийный номер, метку и файловую систему диска."
===========
{ S/N для C: }
Function GetHddSerial: DWord;
Var
aBuffer : array[0..255] of Char;
dwTemp : DWord;
pdwSerial: DWord;
begin
GetVolumeInformation("C:\", aBuffer, SizeOf(aBuffer), @pdwSerial, dwTemp, dwTemp, nil, 0);
Result:= pdwSerial;
end;
{ Так можно получить дату BIOS. Может тебе это больше понравится }
Function GetBIOSDate: String;
begin
Result:= String(PChar(Ptr($FFFF5)));
end;
А затем приобрети AsProtect (www.aspack.com) и сделай то что требует его SDK.
К тому же можно добавить парочку своих проверок на размер исполняемого файла, CRC и т.п. Если программу взломали нужно чтобы она непредсказуемо глючила: например в зависимости от времени суток, четности дня, месяца. Придумаешь.
http://rc4wa.narod.ru/index_ru.html
← →
Polevi (2003-04-06 19:06) [4]возвращает, только не тот
← →
Alex Konshin (2003-04-06 22:13) [5]Еще раз для непонятливых: GetVolumeInformation возвращает серийный номер ТОМА, который никакого отношения к серийному номеру HDD не имеет.
Смотри:
http://home.earthlink.net/~akonshin/index.htm
← →
Levan Varshanidze (2003-04-07 08:56) [6]Mojet prigoditsia
ia pisal eto na C dlia DOS:
#include "bios.h"
#include "dos.h"
void main()
{
unsigned char volume_serial[512],s[4]=" ";
void far vol_ser(char,char*); //opisanie
vol_ser("a",volume_serial); //vizov
s[0]=volume_serial[42]; //dostaem iz nulevogo cilindra ser_num
s[1]=volume_serial[41];
s[2]=volume_serial[40];
s[3]=volume_serial[39];
printf("%x%x%x%x",s[0],s[1],s[2],s[3]);
};
void far vol_ser(char drive,char* cylzero)
{
union REGS r;
r.x.bx=cylzero; //adres, kuda pomeshaetsia soderjimoe nulevogo cilindra
r.h.ah=0;
r.h.al=toupper(drive)-65; //nomer draivera a:0,b:1,c:2.....
r.x.cx=1;
r.x.dx=0;
int86(0x25,&r,&r);//Prerivanie, dostaiushh soderjimoe nullevogo cilindra
return;
}
Glavnoe zdes int86(0x25,&r,&r);
poprobuite (v WINDOWS ne proboval, v DOS rabotaet)
← →
younghacker (2003-04-07 11:37) [7]Alex Konshin совершенно прав!
GetVolumeInformation возвращает номер тома который элементарно копируется на любой другой носитель :) Именно носитель! Этим носителем может быть дискета, flash диск, RAM диск, и вообще любой носитель который форматируется стандартным системным форматом. Заметьте что при переформатировании носителя серийный номер изменится :)
Так что как средство защиты от копирования он не подходит.
← →
Йцукен (2003-04-07 15:10) [8]1. Обращение к прерываниям под NT-подобными системами не сработает.
2. younghacker может и прав. Программу для редактирования SN можно самому сделать или скачать, но если проверка будет в сочетании с данными BIOS-а, то этого вполне будет достаточно. Не одно, так другое.
3. Программу необходимо надежно запаковать.
← →
sucer (2003-04-07 18:25) [9]younghacker:у дескеты GEtV.. возраящяет 0 поэтому я заранее
предусмотрю чтобы программа с дискеты не запускалась.
"Программу для редактирования SN можно самому сделать или скачать" -он записан в контолер на винте! куда он тебе изменится?
Это метку тома можно поменять.
А вот дизасамблироватль kernel32.dll некто не пробовал и
посмотреть как GetVolumeIformation работает а потом просто
блок Ассемблерных комманд скопировать и вставить в asm в DELPHI?
← →
Иван Шихалев (2003-04-07 20:53) [10]
> А вот дизасамблироватль kernel32.dll некто не пробовал и
> посмотреть как GetVolumeIformation работает а потом просто
> блок Ассемблерных комманд скопировать и вставить в asm в
> DELPHI?
И пробовать нечего - "Программа выполнила недопустимую операцию..."
← →
Enderor (2003-04-07 23:05) [11]Alex Konshin аболютно прав.
Не усложняйте себе жизнь, все равно ничего путного не сделаете.
← →
Alex Konshin (2003-04-07 23:16) [12]2 sucer: Серийный номер диска записан на сам диск, и легко копируется и изменяется. Ты о клонировании что-нибудь слышал?
Ты сильно рискуешь нарваться на то, что у всех компьютеров одного изготовителя будет один и тот же серийный номер тома. А если еще и BIOS одинаковый... А на www.sysinternals.com видел программу, которая судя по описанию умеет менять серийный номер тома. Короче, можешь сам догадаться, как будет работать твоя защита.
Ты все-таки загляни на мой сайт, там есть примеры по существу вопроса.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c