Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - как в Perl получить низкоуровневый доступ к hdd?

Ответить
Настройки темы
Разное - как в Perl получить низкоуровневый доступ к hdd?

Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


сабж

среда: win или Lin - не важно

Отправлено: 19:09, 07-05-2014

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Тишина, насколько низкоуровневый?
Linux: /dev/hda подойдет? С соотв. уровнем прав запуска разумеется.
sudo, chmod, chown, и т.п.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 23:37, 07-05-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


непосредственное обращение к hdd для чтения/записи N-ого сектора. пишу прогу типа HEX-редактор диска

а возможно ли считывать из /dev/sd* или /dev/hd* определённый сектор?
если конструкция типа через временный файл при помощи dd - это не подойдёт

Отправлено: 14:52, 08-05-2014 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Рыть гугл со словами DMA linux program /dev/hda/ direct access random cylinder и т.д.
Заодно посмотреть исходники программ: hdparm, fdisk, и еще чего-нибудь.
Нашлось на вскидку, а там не знаю:
Chapter 8. Device Drivers 8.4.2 и ниже
Activating and Deactivating UDMA,
linurs - HardDisk
Kernel/Gentoo Kernel Configuration Guide,
http://rus-linux.net/MyLDP/BOOKS/rute/node22.html.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 15:25, 08-05-2014 | #4


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


оно вообще в перле "скушается"?
дело в том, что если мы на каждое обращение к диску будем использовать внешние команды типа dd или bash - имхо, работать будет медленно...

*спасибо за ссылки!

Отправлено: 15:38, 08-05-2014 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


perl, linux, driver, С структуры, cpan.
Мысль пока пусть полежит. Завтра проснусь, вспомню, напишу развернутый ответ.

Отправлено: 00:17, 09-05-2014 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Мысль сводится к тому, чтобы посмотреть, как идет низкоуровневая работа с устройствами.
Традиционно это С-язык или его ближайшие родственники. Скажем так "сложилось исторически".
Соотв. надо либо найти исходные коды программ для работы с hdd. Посмотреть, спецификацию на файловые системы, структуры, описывающие каталоги, файлы и пр. (Пока такие вещи как LVM трогать не стоит... а может как вариант).
Для справки почитать про адресацию памяти (LBA и прочее).
Возможно придется порыться в описании драйверов устройств. Выяснить, как они работают с /dev/hda на предмет получения произвольного доступа, если таковой существует.
Как вариант достать исходные коды какой либо ОС, и посмотреть что там делается.
(hdparam в ту же сторону)
----
Теперь к perl.
По данному языку существует www.cpan.org. Основное хранилище самых различный программ на perl. Соотв. поиск тоже не помешает.
----
Утром попались следующие ссылки:
get the hard disk information using perl
Securely Erasing a Hard Drive with Perl
Can Perl read the hard drive registration #?
----
Сумбурно пока так. Надо определяться, на каком уровне "низкоуровневка", и как она выглядит в реалиях (абстракциях).

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:00, 12-05-2014 | #7


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


спасибо, вечером изучу эти ссылки!

для С есть LinuxAPI и там что-то вроде win-аналога функции createfile() из WinAPI. другое дело в том, что в perl многие мелочи (превидение типов данных, работа со списками) уже реализовано, что может затормозить написания программы под C (ввиду моего неуверенного знания ООП на нём), т.е. может потребоваться много времени на дебаг.

если же на деле считывать с hdd как с блочного устройства не получится, то попробую "хитрую" подстановку dd. хотя это уже не ПО, а сурогат получится

Отправлено: 17:59, 13-05-2014 | #8


Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Цитата Тишина:
C (ввиду моего неуверенного знания ООП на нём) »
ООП на чистом Си?

Отправлено: 09:19, 14-05-2014 | #9


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


да, я про С/С++. поэтому лишние действия с подгонкой типов данных и выполнения (если потребуется) внешних скриптов и программ - могут повлечь за собой дополнительные ошибки.
perl в этом плане мне кажется более лёгким и определённым.

Отправлено: 10:49, 15-05-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - как в Perl получить низкоуровневый доступ к hdd?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Как получить доступ к сетевым ресурсам? borison Защита компьютерных систем 1 14-03-2010 19:59
Доступ - Как получить низкоуровневый доступ к диску? delog Microsoft Windows Vista 0 14-08-2009 14:51
Компьютер заблокирован! Как получить доступ? xsid Microsoft Windows 2000/XP 2 09-11-2006 13:56
Как получить русские названия директорий на фтп при помощи perl-скрипта Igor_I Общий по FreeBSD 6 26-03-2006 12:24
как получить доступ ominous Сетевые технологии 3 28-05-2003 14:56




 
Переход