Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Как узнать 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
1-26530
Navi
2003-05-25 08:50
2003.06.09
Восстановление зарегистрированного расширения


3-26379
The
2003-05-19 13:58
2003.06.09
---|Ветка была без названия|---


4-26846
Mike
2003-04-07 22:07
2003.06.09
Можно ли научить frame ловить сообщения, адресованные дочерним ко


8-26623
Step[B.M.]
2003-02-26 22:52
2003.06.09
Регистрация звуковой информации.


8-26616
Tim_A
2003-02-28 14:43
2003.06.09
Видеозахват