![]() |
|
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Как с помощью ассемблера получит доступ к из любой файловой системы - скажем NTFS, с любого логического диска - cкажем диска D получить доступ к 1 сектору 0 дорожки 0 головки жестокго диска, я подчеркиваю именно к 1 сектору 0 дорожки 0 головки жесткого диска, а не логического диска на котором находится код программы который читает 1 сектор 0 дорожку 0 головку.
-------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Если из доса, то было бы проще паренной репы. А под Win - такой вопрос и меня интересует... В 98-ой еще видал способ (в MSDN где-то описан), в 2k/XP - не знаю (тот, что в 98-ой работает, в NT-ях не катит)...
-------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Опа! Попробовал тот же способ, что и для чтения локальных дисков - работает!!! Круть! Все до ужасного ужаса просто оказалось.
Если надо читать логический диск, то делаешь CreateFile для имени: "\\.\C:" А если же надо, например, первый физический диск - то: "\\.\PhysicalDrive0" Как раз при чтении с нулевой позиции и будет тебе MBR, преобразование CHS в абсолютный № сектора думаю не вызовут проблем... После CreateFile юзай SetFilePointer и ReadFile/WriteFile... -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
PS: для CD-ROM-ов вроде имена такие "\\.\Cdrom0"
Про способ для 98-ой: через "\\.\vwin32" можно вызывать прерывания DOS 13h, 25h, 26h... -------------------- С уважением, г-н Посол. |
|||
|
||||
Jin X |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 5.3.2004 Репутация: 1 Всего: 1 |
Файловая система тут ни при чём.
Если пишешь прогу под ДОС, используй ah=2/int 13h, но это будет работать только в ДОСе и в Win9X/ME. Если пишешь под винду, то... см. тут --------------------
Бойся своей мечты, ибо она осуществима! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |