The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как получить серийный номер винчестера с помощью С?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как получить серийный номер винчестера с помощью С?"
Сообщение от Defender emailИскать по авторуВ закладки on 12-Июн-02, 01:08  (MSK)
Вот надумал защитить свою софтину. И решил, что лучшим способом этого будет привязка конкретной копии к конкретному железу 8))
А вот как это сделать?
В принципе dmesg выдаёт в частности такое:
ad0: 39266MB <IBM-DTLA-305040> [79780/16/63] at ata0-master UDMA33
              ^^^^^^^^^^^^^^^
А вот как эго получить сугубо из под С.....
Заранее благодарен.    
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от uldus Искать по авторуВ закладки on 13-Июн-02, 11:14  (MSK)
>А вот как эго получить сугубо из под С.....

Можно через /proc или sysctl, в зависимости от системы.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от Defender emailИскать по авторуВ закладки on 13-Июн-02, 19:30  (MSK)
>>А вот как эго получить сугубо из под С.....
>
>Можно через /proc или sysctl, в зависимости от системы.

Ну как это сделать через /proc я себе представляю...
А вот как черезе sysctl?
В его параметрах я такого не нашел....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от uldus Искать по авторуВ закладки on 14-Июн-02, 10:10  (MSK)
> А вот как черезе sysctl?

sysctl тоже достаточно сильно к системе привязан, например, для FreeBSD тип CPU узнается через "sysctl hw.model", в Linux - "cat /proc/cpuinfo"

Из программы sysctl используется, почти как через команду sysctl:
man 3 sysctl

int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от pth Искать по авторуВ закладки on 16-Июн-02, 22:49  (MSK)
>А вот как это сделать?
В этой жизни ни в чем нельзя быть уверенным, особенно - что остальные идиоты.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от Defender emailИскать по авторуВ закладки on 17-Июн-02, 00:06  (MSK)
>В этой жизни ни в чем нельзя быть уверенным, особенно - что
>остальные идиоты.


Ну так сказать довольно просто. Но честно говоря я не нашёл ещё ни одного решения этой проблемы....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от pth Искать по авторуВ закладки on 17-Июн-02, 00:12  (MSK)
>Ну так сказать довольно просто. Но честно говоря я не нашёл ещё
>ни одного решения этой проблемы....

Ты меня зацепил --- найду способ 7 дня . иначе фа-диез+ буду.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от pth Искать по авторуВ закладки on 17-Июн-02, 00:30  (MSK)
>Ты меня зацепил --- найду способ 7 дня . иначе фа-диез+ буду.
>
PS системку слей плз (если ответ для Linux Kernel 2.4.18 не полезт).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от pth Искать по авторуВ закладки on 18-Июн-02, 21:15  (MSK)
Прошу прощения за 3 пьяных вопля.
Смысл в чем --- сигнатура диска не имеет прямого отношения к функциональности системы, а значит можно пропатчить ядро так, что бы в ответ давался ЛЮБАЯ сигнатура. Хэширование ее, как пароля проблемы не решает.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от Defender emailИскать по авторуВ закладки on 19-Июн-02, 15:53  (MSK)
>Прошу прощения за 3 пьяных вопля.
>Смысл в чем --- сигнатура диска не имеет прямого отношения к функциональности
>системы, а значит можно пропатчить ядро так, что бы в ответ
>давался ЛЮБАЯ сигнатура. Хэширование ее, как пароля проблемы не решает.


Чего то я не понимаю о чём речь....
Мне надо получить в переменную серийный номер устройства который, на сколько я понимаю, прошит в устройстве (на винте).
Так вот вопрос и состоит в том как это сделать....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от Бизон Искать по авторуВ закладки on 19-Июн-02, 16:05  (MSK)
>Мне надо получить в переменную серийный номер устройства

Для Limux см. SerialNo=xxxxx в выводе "hdparm -i /dev/hdx", затем посмотри в исходники hdparm на предмет выдерания информции при использовании опции -i.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от Defender emailИскать по авторуВ закладки on 19-Июн-02, 16:14  (MSK)
>>Мне надо получить в переменную серийный номер устройства
>
>Для Limux см. SerialNo=xxxxx в выводе "hdparm -i /dev/hdx", затем посмотри в
>исходники hdparm на предмет выдерания информции при использовании опции -i.


Но у меня FreBSD 4.4

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от uldus Искать по авторуВ закладки on 20-Июн-02, 09:56  (MSK)
>Но у меня FreBSD 4.4

Для IDE дисков поможет посиск по слову serial в файлах:
/sys/sys/ata.h
/sys/i386/isa/atapi.c
/sys/dev/ata/ata-all.h

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от niger emailИскать по авторуВ закладки on 21-Июн-02, 11:11  (MSK)
для ATA винтов функция ECh - чтение идентификатора
  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от pth Искать по авторуВ закладки on 22-Июн-02, 03:14  (MSK)
>Чего то я не понимаю о чём речь....

Я тоже не понимаю как из непривилегированного (CPL=3 для IA32) кода, можно обращаться к железу (через порты или как) и быть при этом уверенным, что никто (из CPL=0) тебя не перехватил.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "RE: Как получить серийный номер винчестера с помощью С?"
Сообщение от uncle Bob emailИскать по авторуВ закладки on 27-Июн-02, 15:41  (MSK)
#include <stdio.h>
#include <fcntl.h>
#include <linux/hdreg.h>

int main()
{
    struct hd_driveid hd;
    int ide;
    ide=open("/dev/hda",O_RDONLY);
    ioctl(ide,HDIO_GET_IDENTITY,&hd);
    printf("Serial number - %s",hd.serial_no);
    return 1;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру