Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
4-26838
sosv
2003-04-11 15:20
2003.06.09
Принадлежность точки к региону.


1-26508
Lin
2003-05-29 14:05
2003.06.09
Как в StringGreed поместить CheckBox?


14-26680
Дмитрий К.К.
2003-05-25 11:21
2003.06.09
Именинники 25 мая


14-26732
asafr
2003-05-22 15:34
2003.06.09
Резюме сисадмина


3-26349
AlexAvz
2003-05-20 13:43
2003.06.09
Перенос БД на другой компьютер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский