![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Owner |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.4.2005 Где: г. Москва Репутация: нет Всего: нет |
Потерял роаздел NTFS с видео и фото. Очень жалко, хотелось бы его восстановить, но как оказалось с ПО по восстановлением информации тяжело. Присутствуют в Инете либо полностью коммерческие продукты по диким ценам, либо ублюдочные - типа DskProbe из NT Resource Kit. Как я понял, легче написать браузер самому, но не знаю, как получить доступ непосредственно к физическому диску. Прямо скажу - MSDN пока не читал. Нашел статью братьев Фроловых по восстановлению поврежденных разделов дисков, но выйти на их сайт в Глас-нете не удалось. Они пишут, что у них есть простенький браузер, но как его получить не пишут, видимо не заинтересованы в распространении.
Буду очень благодарен за полезную информацию. |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 4 Всего: 47 |
Owner
Плохо ищем ![]() Покуда будешь писать свой recovery - уйдет много времени ![]() R-Studio попробуй. Лечилку тож найти не проблема ![]() |
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: нет Всего: 10 |
написать свой recovery проще чем найти готовый?
![]() Вот обрати внимание на EasyRecovery Professional, мне уже очень много раз помогала. -------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
для НТФС написать самому оооочень сложно
ибо даже девелоперы линюха коекак написали дравер да и то только чтение ))))) -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Owner |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.4.2005 Где: г. Москва Репутация: нет Всего: нет |
Спасибо большое за науку. Скачал R-Studio, демо версию. Програмка классная, нашла все
![]() ![]() EasyRecovery Professional еще не пробовал. За драйвер Linux спасибо, надо взглянуть. Интересно, однако, люди же пишут под Win32 direct access, значит это кому-то можно! Причем пишут неплохо! ![]() |
|||
|
||||
PGsoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.5.2005 Где: Петербург Репутация: 1 Всего: 1 |
Прямой доступ к секторам диска в такой высокозащищённой системе, как WindowsNT/2000/XP получить не просто... а очень просто (!): с помощью обычной функции WIN32 API CreateFile(). Вместо имени файла указывается "\\.\<логический диск>" или "\\.\PHYSICALDRIVE<номер>", где <логический диск> - "A:", "B:", "C:" и т.д., <номер> - номер физического устройства начиная с 0. Windows95 не поддерживает обращение к логическим дискам. Дополнительные требования - указывать FILE_SHARE_READ/FILE_SHARE_WRITE, и читать/писать с/в кратных секторам смещениям (я читаю/пишу по 1 сектору - 512байт).
Информация о параметрах устройства и некоторые операции (в том числе, и опасные) - DeviceIoControl, куда передаётся полученый хендл. Читая с физического устройства можно получить доступ и к MBR, и даже изменить её без каких-либо проблем и предупреждений даже в WindowsXP Professional (!!!) - достаточно лишь обладать правами администратора. Что уж говорить о доступе к NTFS и прочим вещам?! Вот пример программы, выполняющей очень опасную ![]()
И вообще, если есть желающие пообщаться на тему NTFS/FAT: я как раз сейчас занимаюсь NTFS, есть кое-какие интересные наработки (будет программа для восстановления файлов и пр.). ПРИМЕЧАНИЕ. Автор не несёт никакой ответственности за последствия применения указаной здесь информации, включая запуск приведённой программы! :-))))) |
|||
|
||||
Owner |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.4.2005 Где: г. Москва Репутация: нет Всего: нет |
Да, все гениальное - просто. Еще и еще раз убеждаюсь в этом!
![]() Желание пообщаться на тему NTFS есть, и большое. Правда времени творить - мало. Спасибо за очень ценную подсказку, PGsoft, не ожидал, что винды так просто отдают ресурсы. Надо поиграться, попробовать. Я сейчас занимаюсь восстановлением своих архивов. Как только закончу, попробую собрать для начала смотрелку разделов на предмет восстановления информации. Затем нужно применить рецепты братьев Фроловых. URL статьи:Восстановление поврежденных разделов NTFS. Видимо, там и появятся вопросы, так как я уже пытался их применить. Однако, ничего хорошего на диске не нашел, а этот паразит, R-Studio, находит! Еще раз спасибо всем за советы - софт нашел посвежее. На горбунке продают хороший сборник по поводу восстановления: Работа с Жестким Диском называется, в синей обложке. ![]() Это сообщение отредактировал(а) Owner - 6.6.2005, 18:08 |
|||
|
||||
SHENDEL |
|
|||
Unregistered |
Как руки чешуться испробовать этот архи-полезный код на ближнем своем
![]() |
|||
|
||||
Owner |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.4.2005 Где: г. Москва Репутация: нет Всего: нет |
SHENDEL, там есть маленькая оговорочка:
Так что, если ближний не дурак, то испробовать этот код на нем не получится! ![]() Кстати, ни один пакет, кроме R-Studio, так профессионально структуру поврежденных разелов не воспроизводит. EasyProf восстанавливает файлы без оглядки на содержимое, поэтому вылезает очень много мусора. Акронис и Paragon вообще ничего видят. Почитал MSDN. Оказывается, там много полезной иформации! По структуре таблиц разделов, MBR, FAT, NTFS. В разделе NT Workstation Resources. ![]() |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
вот тоже пример, кагда-то было интересно)
|
|||
|
||||
Owner |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 29.4.2005 Где: г. Москва Репутация: нет Всего: нет |
PGsoft, я готов пообщаться по поводу NTFS и FAT, но прежде хотел бы разобраться с Boot Record и таблицами разделов. В MSDN описан формат записей таблицы, однако описание довольно старое, по крайней мере нет расшифровки кодов SystemID выше 0х0F, а такие есть, и много их.
Второй вопрос касается современных дисков, где количество цилиндров давно превысило число 1023. В выдаче програмки Partinfo.exe из пакета PartMagic присутствует термин Large Drive Place holders. Что это и где его искать? Перевод мне понятен ![]() Не понятно, где эти холдеры описаны и где находятся. Может есть ссылки на более свеженькую информацию? |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Кто может подсказать, как можно вести ОЧЕНЬ низкоуровневую запись на Flesh Stick.
Что - то типа того, что написал PGsoft олько для Flash. Кто сможет сказать что внятное: ICQ: 237242967 mail: [email protected] |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
что значит очень низкоуровневое?
по идее флешка рассматривается как ремовабиле девайс тоесть типа флопи ) соответственно у нее есть файловая система вывод работать с ней можно также как и с простым диском -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Guest |
|
|||
Unregistered |
Owner, естественно, надо первым делом MSDN смотреть :-) Вернее, нет - первым делом help по SDK, потом MSDN, и уж "если ничего не помогает" - DDK.
Насчёт ёмкости жёстких дисков - 1024 цилиндрами нас ограничивает BIOS, стандарт ATA позволяет обратиться к 65536 цилиндрам. Так что делай выводы ![]() ATA CHS - 16 бит цилиндры, 4 бита головки, 8 бит сектор - всего 28 бит, до 127.5 Гб; ATA LBA - 28 бит адрес сектора - до 128 Гб; SCSI - 32 бит адрес сектора - до 2 Тб. Опять же, делай выводы :-)) Увеличить количество бит адресации для ATA - большая проблема; увеличение уже происходило нераз, и больше ресурсов (штырьков в разъёме ![]() В любом случае, сейчас вводится стандарт SATA (причём на многих чипсетах - "коряво", на мой взгляд: ведь по регистрам он вроде как соответствует ATA, а многие ли ОС "видят" при установке жёсткий диск SATA?! Есть у кого-нибудь сведения по этому поводу?) И ещё один момент. Где же встречаются коды разделов более 0Fh? Ответ прост: там, где установлена другая ОС, не Microsoft. Опять же - делай выводы: в MSDN никогда и не будет кодов более 0Fh :-)))) Кстати, народ, есть идейка - кто-нибудь занимался написанием драйвера файловой системы? Пишите, будем сотрудничать :-) |
|||
|
||||
PGsoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.5.2005 Где: Петербург Репутация: 1 Всего: 1 |
Кстати, Guest - это я. Скачу между системами.
|
|||
|
||||
PGsoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.5.2005 Где: Петербург Репутация: 1 Всего: 1 |
Кстати, многие вещи касательно файловой системы (в том числе и NTFS) описаны не в MSDN или DDK, а только в Microsoft IFS Kit. Он распространяется не бесплатно, а за несколько сотен долларов (см. сайт Microsoft). Кое-какие сведения имеются в файле "ntifs.h", распространяемым различными "исследователями" Windows NT... например, http://www.acc.umu.se/~bosse/
Если у кого-нибудь есть доступ к IFS Kit 98/2000/XP - кинте ссылку, пожалуйста. Или у кого-нибудь может на CD есть (на некоторых дисках вместе с Borland C/Visual C бывает DDK и IFS), не могли бы залить куда-нибудь в Интернет (или прислать мне по почте)? :-) |
|||
|
||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
PGsoft
Испытал вашу "разрушительную" прогу. Сначала на ХР, потом на 2000. Пробовал не только на диске С, но и на диске А. Результата не дало НИКАКОГО! На диске А, ваще появилось сообщение, что он не могет найти устройство. По-моему данная прога будет работать тока на виндовсе НТ, на котором я это не испытывал. P.S. Ах да, вы уж пожалуста расшщифруйте ваши комментарии, а то я пытался по-разному их прочитать и никак не получилось -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
Ibragim |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 28.9.2004 Где: Киев Репутация: нет Всего: нет |
В программировании разбираюсь плоховато, но про накопители могу ответить все
![]() 1. Значит смотри - R-Studio NE, или R-Studio NTFS - лучший выбор однозначно. Не так уж сложно найти в нете и саму, и лекарство. Только показывай не на раздел, а на весь диск, правая кнопка мыши и Scan - тогда оно само найдет варианты NTFS Boot, выберешь, какой твой. 2. Совсем низкоуровневый доступ можно получить до порта, например с помощью драйверов smport.sys или подобных, и потом по стандарту ATA (www.t13.org) подавать на диск команды чтения сектора, и анализировать содержимое. Достаточно сложно, но необходимо, если на винте например бэд-блоки, и Windows просто говорит об ошибке и отказывается работать. Могу привести код по просьбе общественности (как инициализации и запуска драйвера, так чтения/запись в порт, так и команду чтения сектора) - только много получится, если никто не попросит - нечего форум засорять. |
|||
|
||||
avek |
|
|||
Unregistered |
Два замечания:
1) Под Windows 9x и на достаточно свежих материнках есть функции BIOS INT13h, AH=4xh, которые не ограничены 1024 цилиндрами и вообще адресуют диск через 64-битный LBA адрес. 2) В ATA уже давно гораздо больше 28 бит адреса (вроде 64, если я правильно помню), но это должны специально поддерживать драйвер диска и сам диск. Там есть команда, которая выдаётся перед нормальной командой чтения, записи и т.п. и устанавливает старшие биты адреса для следующей команды. Короче, см. http://www.t13.org - точнее, чем там, на халяву не бывает. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
Хороший ресурс ![]() Только как , то что там описанно в исходник всунуть???? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
The Thing |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
У меня почему-то не работает:
в то время как
...работает... ??? -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
||||
|
|||||
PGsoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.5.2005 Где: Петербург Репутация: 1 Всего: 1 |
The Thing, значит, у тебя Win9X ![]() |
|||
|
||||
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Win 2000
-------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
нет... Я тут поковырялся... все верно.. доступ я получаю к физическому носителю PHYSICALDRIVE0 - мой жесткий диск, а c: или d: это уже логический диск.. и на прямую, как я понял, его получить нельзя.. на CreateFile(...) говорит, что уже занято иным процессом. Т.е. мне надо получить информацию о смещение до нужного логического диска... или как-то плясать через таблицу логических дисков. По идее должна быть фун возвращающая колонку, трек и сектор.. С которого начинается диск.
Нус... жду помощи! -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |