|
1 / 1 / 0
Регистрация: 16.06.2020
Сообщений: 12
|
||||||
FASM Низкоуровневый доступ к жесткому диску16.06.2020, 22:04. Показов 3739. Ответов 9
Метки нет (Все метки)
Здравствуйте!
Хочу сделать хакерскую программу для посекторного копирования одного жесткого диска на другой. Сначала я хотел делать на Си, под ДОС, но там очень ограниченное число функций. Потом, я передумал делать даже под ДОС, потому что в ДОС как в малоразрядной системе нельзя адресовать (наверное) диски размером 3 терабайта. И поэтому я решил делать не на Си, а на ассемблере. Без ОС на самодельном загрузчике. 64 бита. Ассемблер я не знаю. Я нашел немного материала: http://www.firststeps.ru/asm/r.php?20 "AH=02H Al - количество секторов для чтения. CH - цилиндр CL - сектор DH - головка DL - диск ES:BX - сегмент смещение для буфера." На этом сайте написано, что цилиндр - это физический диск. Но в диска есть 2 стороны. Мне не понятно, головки используются для обозначения сторон? Или обе стороны физического диска представляют собой цилиндр, а головки используются для деления этого цилиндра на два? Еще мне не понятно, как прочитать и куда информацию? И какими цифрами, в каком виде идет нумерация? Как представить число например 5657?
0
|
||||||
| 16.06.2020, 22:04 | |
|
Ответы с готовыми решениями:
9
Как посчитать количество обращений к жесткому диску? Доступ к жёсткому диску
|
|
Модератор
|
|
| 16.06.2020, 22:17 | |
|
Эти данные из древнего мира древнего оборудования.
Конечно, BIOS для материнки обновляется и улучшает программное обеспечение прерывания int 13h, но что-то остаётся неучтённым. Решение не в мире DOS и не в мире ассемблера.
1
|
|
|
1 / 1 / 0
Регистрация: 16.06.2020
Сообщений: 12
|
|
| 17.06.2020, 00:00 [ТС] | |
|
Спасибо за ответ! А Вы случайно не знаете, как выполнить операцию в новых биосах?
У меня есть диск 1 терабайт размером. Я с ним замучился. Надо восстановить с него данные. У него первых 200 миллионов LBA (я не знаю, что это) MHDD отображает битыми. Вернее, он на них намертво виснет до выключения питания. Подбирал методов тыка и где-то с 200 миллионов прекращаются зависания. Когда Windows или Linux загружаются (конечно не с этого, а с другого диска), то этот диск трещит как трактор и зависает. Даже после перезагрузки он остается зависшим и трещит. Помогает только выключение компьютера и снятие питания с диска. Если же не обращаться к этим первым 200 миллионов LBA, то диск работает нормально (в MHDD). Я взял программу для DOS "CopyR DMA HDD Cloner" и удачно скопировал при ее помощи с 200 до 256 миллионов LBA. Это около 25 Гб. Но больше я не смог. Эта программа не видит пространство более 128 Гб (256 миллионов LBA). Первых 100 Гб (200 миллионов) испорчены, поэтому можно копировать только остальных 25 Гб (до 256 миллионов). Я искал другие программы посекторного копирования, но я ничего не нашел. Есть только для Windows, Linux. А они обязательно лезут в эти сектора (первые на диске) и диск виснет. Поэтому я не могу использовать эти системы. Я так понял, что я могу использовать только ДОС. Но я так понял, ДОС не адресует диски более 128 Гб. И поэтому я никогда не найду нужной программы. Только изготовить самостоятельно. Либо переделать как-то ДОС и CopyR под 64-бит. Или может я неправильно понимаю... Расскажите, пожалуйста, все что Вам известно по этой теме. Добавлено через 7 минут Хотя вообще MHDD увидел и просканировал этот терабайтный диск. А вот второй, 3-терабайтный, он просканировать не смог. Он отобразил максимальный LBA - 5 с чем-то миллиардов, но просканировать он смог только до 1.9 миллиарда.
0
|
|
|
Модератор
|
|
| 17.06.2020, 00:03 | |
|
Вам нужно обратиться в раздел
https://www.cyberforum.ru/data-recovery/ И никакой самодеятельности в самописных программах. Если данные имеют высокую ценность, то лучше совсем - в специализированную фирму. Это, конечно, дорого, но вероятность восстановления выше.
1
|
|
|
1 / 1 / 0
Регистрация: 16.06.2020
Сообщений: 12
|
|
| 17.06.2020, 05:21 [ТС] | |
|
Спасибо за ответ, я создал тему
Восстановить данные с диска Seagate 1 TB но мне бы очень хотелось заняться самодеятельностью. Руки чешутся. Потому что за несколько месяцев поиска нужной программы я не нашел.
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 17.06.2020, 16:03 | ||
|
Когда-то давным давно была программа Norton DiskEdit которая позволяла копировать группы секторов или физических секторов в файлы и обратно. Копии жестких дисков сектор в сектор делали ей. Просто копировали все физические сектора от первого до последнего на одном диске в файл на другом. Только работала эта прога под MS-DOS, потом появилась версия под Win-95/98. Полагаю, что наследником этой проги для NT-образных ОС с файловой системой NTFS является это https://dmde.ru/ Вот ее и осваивай.
1
|
||
|
Модератор
|
|
| 17.06.2020, 17:05 | |
|
Ещё я пользовался Clonezilla для копирования диска - я как-то не так ставил драйвера и программы на ноутбук, что приводило к необходимости почти в тот же день переустанавливать Windows Vista. Там ещё какие-то проблемы были. На второй раз мне это надоело и сделал образ сразу после установки Windows и ещё один сразу после установки всех драйверов и обновлений. Как ни странно, после создания образа диска - он пригодился только 1-2 раза - всё заработало устойчиво.
Но, Clonezilla сжимает образы - не сохраняет незанятые области или, что-то в этом духе. Сделал такой вывод потому, что образ был значительно меньше HDD. Как понимаю, данные на диске - не важны. Раз хочется самодеятельности - придётся искать информацию по работе с дисками на уровне портов, т.к. чтение сбойных секторов имеют какие-то особенности. Даже не знаю, что посоветовать к чтению. Наверное книги Михаила Гука, Владимира Кулакова. Хотя, они уже устарели. Кроме этого есть сайт с хорошими статьями, забыл название, его всегда рекомендуют почитать при работе с "железом", написанию собственной ОС - даже не помню, он на русском или по английски.
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||
| 17.06.2020, 18:30 | |||
Сообщение было отмечено anoxakerbrov как решение
РешениеДобавлено через 5 минут Я бы сделал так - посекторно скопировал бы диск в файл на другой диск (ожидая когда это копирование закончится со всеми ошибками которые при этом вылетят), потом нашел бы точно такой-же диск как погибший, файл скопировал бы в физические сектора этого диска и уже на нем пытался что-то спасать. Добавлено через 20 минут А, затупил. Не надо промежуточного файла. Сразу dmde с дохлого диска посекторно физические сектора копировать на точно такой-же живой, а потом на живом искать что можно спасти. Это вот самый надежный способ.
0
|
|||
|
Модератор
|
|
| 17.06.2020, 18:33 | |
|
Не помню. Кажется, можно было и диск со структурой разделов и отдельные разделы.
Это было во времена Windows Vista. Запомнил инструмент потому, что задачу снятия и восстановления копии диска выполнял. Очень может быть, что в какой-то момент я сделал копию не диска а раздела - для скорости восстановления - и именно у этого образа был уменьшенный объём по сравнению с разделом. Если ТС будет интересно - найдёт и уточнит возможности. Для тех целей - Clonezilla была хорошим инструментом. Примерно, ослабленным аналогом Acronis. Но бесплатным.
0
|
|
|
1 / 1 / 0
Регистрация: 16.06.2020
Сообщений: 12
|
|
| 17.06.2020, 22:11 [ТС] | |
|
Ethereal, спасибо большое у меня все получилось, что касалось посекторного копирования! Я сразу после Вашего ответа все загрузил и скопировал.
Чтобы не делать кросспостинга, Восстановить данные с диска Seagate 1 TB Но проблемные сектора не скопировались. Я делал повторные попытки, при этом битые LBA смещались на несколько млн взад-вперед. Значит, проблема в механике (позиционирование)? Надо уменьшить скорость вращения диска и уменьшить скорость головки. Но вот dmde здесь уже не помогает. Может, есть ассемблерные команды для уменьшения скорости диска?
0
|
|
| 17.06.2020, 22:11 | |
|
Помогаю со студенческими работами здесь
10
Доступ к жесткому диску Пропал доступ к жесткому диску Пропал доступ к жесткому диску Как закрыть доступ к жесткому диску? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|