Ru-Board.club
← Вернуться в раздел «Программы»

» X-Ways WinHex

Автор: Pacho
Дата сообщения: 27.09.2008 14:45
Как в WinHex пометить bad-блоки на флешке? Файловая система FAT32.
Автор: MaxMelekin
Дата сообщения: 09.11.2008 12:44
ребята, такая проблемма. Впервые столкнулся с программой. Значит так, имеется загрузочный сектор для виндовс на флешке. Исполняемый файл там ntldr, нужно переименовать его, например, в n.bss чтоб не потерять опции загрузки. Открываю winhex, жму F9, выбираю свой флеш накопитель. Дальше какие мои действия? Можно пошаговое описание. Программа есть на английском и на русском.
Автор: euheny
Дата сообщения: 10.11.2008 00:39
Pacho

Цитата:
Как в WinHex пометить bad-блоки на флешке?

Может ты знаеш как это сделать в других редакторах?

Когда-то упорно пытался понять как это сделать - но сложновато - вдимо щитать надо много. Вобщем так и не понял как выглядит в таблице помеченный испорченным кластер
Автор: Pacho
Дата сообщения: 10.11.2008 11:43
euheny

Цитата:
Вобщем так и не понял как выглядит в таблице помеченный испорченным кластер

Здесь описание структуры диска:

_http://web-protect.net/dsk.htm

Сбойные сектора помечаются:

Код: FF7h для FAT12
FFF7h для FAT16
FFFFFF7h для FAT32
Автор: and23
Дата сообщения: 10.11.2008 15:37
2Pacho, euheny: Это imho оффтопик. Потому что до пометки сбойных блоков на физическом уровне WinHex'ом imho не добраться (таблицы лежат в секторах, в пользовательском режиме недоступных). А для пометки на логическом уровне - в FAT'е - достаточно скандиска (или NDD) с опцией проверки поверхности.

Кстати, блоки - вернее, отображение физических секторов на логические - контроллер постоянно тасует. И логический кластер, сбойный сегодня, может "стать" нормальным завтра - и наоборот.
Автор: Pacho
Дата сообщения: 10.11.2008 17:20
and23

Цитата:
А для пометки на логическом уровне - в FAT'е - достаточно скандиска (или NDD) с опцией проверки поверхности.

Скандиск тупо виснет на 25% (видимо, там первый бэд), а NDD в Windows 2000/XP/2003 не проверяет на бэды... И ваще я не знаю программ, которые проверяют на бэд-блоки флешки.
Вот и подумал, мож вручную удастся пометить через WinHEX.
Автор: and23
Дата сообщения: 10.11.2008 19:36
2Pacho: Тогда - раз уж обсуждаем решение средствами WinHex'а - пробуйте слить образ этой флешки. Так узнаете номер сбойного сектора (если он вообще есть). Попытки записи в него, скорее всего, приведут к ремапу средствами самого контроллера флешки. Если нет, то по номеру сектора можно вычислить номер сбойного кластера и пометить его в FAT'е.
Автор: euheny
Дата сообщения: 11.11.2008 02:43
Pacho

Цитата:
Здесь описание структуры диска:

спасибо за ссылку - может для нтфс знаеш чего?

and23

Цитата:
до пометки сбойных блоков на физическом уровне WinHex'ом imho не добраться

да нет - он как раз для подобных операций

Pacho

Цитата:
а NDD в Windows 2000/XP/2003 не проверяет на бэды

так загрузи дос

Цитата:
бэд-блоки флешки

в теме про флэшки в моей подписи, есть один спец по флэшкам - попробуй у него спросить
Автор: Victor_VG
Дата сообщения: 11.11.2008 09:48
and23
Pacho

Есть комплект утилит Flash Memory Toolkit. Для данной задачи он подойдёт. А то, затеяли стрельбу из пушки по воробьям.

P.S.

Ссылки там рабочие, только смотри в низу окошка на сайте.
Автор: and23
Дата сообщения: 11.11.2008 14:42
2euheny:
Цитата:
да нет - он как раз для подобных операций
Повторяю: таблицы трансляции лежат в областях, недоступных в пользовательском режиме, и WinHex'у в том числе. Доступ туда имеет контроллер и, возможно, фирменные утилиты. Ну и, естественно, программатор :-)
Автор: euheny
Дата сообщения: 12.11.2008 02:33
and23

Цитата:
таблицы трансляции

так они нам и ненужны - зачем так глубоко рыть

суть в том чтот есть сектора на которых проги виснут

если эти сектора пометить, то их никто трогать не будет и сделать это можно в фате

хотя мне кажется что проги просто криво написаны - недолжны они виснуть
но скорее криво написана винда...
Автор: and23
Дата сообщения: 12.11.2008 15:11
2euheny: Я и не предлагал "глубоко рыть". Если помниете, я лишь сказал, что до пометки на _физическом_ - а это как раз-таки таблицы трансляции - уровне WinHex не доберётся.

В FAT'е пометить _сектора_ нельзя. "Единицей измерения" там является _кластер_. (В скобках замечу, что размер кластера в принципе может быть равен одному сектору... но где Вы такое видели? :-) )
Автор: Victor_VG
Дата сообщения: 12.11.2008 15:50
and23

Только контроллер, отдельные фирменные утилиты через технологический интерфейс (найти практически не реально) и специальные комплексы для ремонта дисковых накопителей. А пометить физические бэды в P-/G-list? Х-м-м... хочу посмотреть на программное обращение по чтению/записи к сектору с адресом 00:00:-01 и ниже, равно как и к инженерным цилиндрам, естественно без "танцев с бубном" в виде фирменной команды "диагностика" с её не документированными параметрами. Более того, мечтаю я на это посмотреть, уже добрых лет двадцать пять мечтаю, с того момента как впервые пришлось ремонтировать IDE винт нечано спалённый моим сотрудником - не хотелось платить за спалённую машину $15000 по балансовой стоимости машины.
Автор: euheny
Дата сообщения: 13.11.2008 01:46
and23

Цитата:
В FAT'е пометить _сектора_ нельзя. "Единицей измерения" там является _кластер_.

суть в том что мы помечам кластер в состав которого входит сбойный сектор, и сделать это можно только в фат-ах

кстати на мой взгляд 512байт уже очень мало - гораздо более подойдёт 8кбайт для размера сектора

причём во флэшках вроде как и нет таких малых секторов - контроллер организует видимость мелких секторов.
Автор: Victor_VG
Дата сообщения: 13.11.2008 06:01
euheny

У флэш накопителей понятия "сектор, кластер" в принципе вещь логическая - они оперируют страницами и строками памяти которые стираются, читаются, модифицируются и пишутся как единое целое. И обычно "страница" имеет размер от 64 Кб до 16 Мб в зависимости от ёмкости и организации матрицы памяти. Потому естественно, что контроллер в режиме совместимости с FDD/HDD/Zip эмулирует их логическую структуру. Именно благодаря такой организации памяти накопитель может использовать свою ёмкость почти на 100%. Коли интересно что это за принципы, то погляди документы с этой страницы - там спецификации и описания принципов работы Flash памяти в формате PDF от разработчика памяти данного класса - Intel Technologies. Эта память была ими описана ещё если мне память не изменяет в 1993 году, а запатентована на несколько лет раньше. Просто книгу с описанием принципов работы флеш-памяти от Intel искать нет желания. У меня их несколько тысяч.
Автор: and23
Дата сообщения: 13.11.2008 17:22
2euheny: Я ещё в первом своём ответе упомянул про "блок". Это как раз и есть та единица, с которой флешка работает "внутри себя". И блок, конечно, больше 512 байт... только вот чтоб работать именно с блоками, нужно опуститься на тот самый недоступный физический уровень.

2Victor_VG: Ну, HDD всё же "несколько" :-) отличаются от флешек... хотя служебка тоже недоступна в обычном - пользовательском - режиме. Но, в отличие от флешек, добраться до неё на большинстве моделей не представляет особой сложности.
Команды доступа - да, не документированы. Однако в ATA-стандарте под них специально выделены диапазоны - "Vendor-specific commands".
Автор: euheny
Дата сообщения: 14.11.2008 00:39
Victor_VG

Цитата:
У меня их несколько тысяч.

может на русском есть что свежее (для флэшек по 64Гб вкючительно)

подобная инфа мне на глаза как-то не попадается.
Автор: MF2D
Дата сообщения: 21.11.2008 19:04
Народ помогите!

Пытаюсь сохранить содержимое флэшки в бинарном коде - открываю, а строка сохранить в меню неактивная (серая, недоступна)!

В чём засада???

Winhex 15.1 SR6
Автор: oan42
Дата сообщения: 26.11.2008 19:10
Провел сравнение по скорости двух версий 11.6.13 и WinHex 15.1 SR-6
на функции Open Disk
Этап Traversing cluster chains... выполняется в 11-й версии на порядок быстрее,
к тому же его можно прервать и продолжить работу с деревом директорий диска.

В чем причина?
Автор: Victor_VG
Дата сообщения: 26.11.2008 22:13
euheny

Принцип построения накопителя не изменится. 3D матрица памяти. Считываться строка целиком, а потом микроконтроллер накопителя выбирает из неё нужные байты. Запись также осуществляется полной строкой. А вот стирается сразу блок (страница) состоящий из группы строк. Обычный размер страницы 64К, строки 64/128/256 байт. Это сделано для уменьшения длительности цикла "чтение-модификация-запись" в накопителе. Среднестатистическая его надёжность порядка 107 циклов записи. Каждая операция форматирования использует примерно 40 - 50 из них. Срок хранения данных на накопителе 8 - 10 без разрушения информации. От ёмкости накопителя эти параметры не зависят. Они определяются физикой запоминающих ячеек MNOP-транзисторов. Их особенность заключается в том, что под металлическим затвором между двумя слоями диэлектрика расположен слой электрета - вещества способного сохранять состояние приложенного электрического поля длительное время. На затвор подаётся импульс напряжения достаточный для переключения ячейки и состояние поля сохраняется в структуре электрета. После снятия управляющего поля состояние ячейки определяется полем электрета. И именно его параметрами в основном определяется её надёжность и быстродействие. А разбиение на блоки-подматрицы стандартный приём ускорения работы массивов памяти за счёт распараллеливания операций в многомерном массиве памяти. Любой современный модуль памяти или флэш-накопитель построены по этому принципу. Ничего новее и надёжнее пока, увы не изобрели. Только его модификации с целью упрощения производства.
Автор: VictorMan
Дата сообщения: 30.11.2008 22:17

Цитата:
Victor_VG
Последняя рабочая русская версия есть в шапке этой темы. Потом Стефан стал специально блокировать работу с кириллицей. Во всяком случае к такому выводу мы пришли по итогам его действий, да и он не спешит его опровергнуть...

Кстати, а вот понадобилось вводить в Unicode, - так 13SR13 этого не позволяет делать.
Отображать то отображает (Опции->Набор символов->Юникод), а вводить не получается.
Или я чего не понимаю???
Блин, а вот FlexHex от Heaventools.com показыает и позволяет вводить, в т.ч. и русский!!!


Автор: euheny
Дата сообщения: 01.12.2008 01:49
Victor_VG

Цитата:
Каждая операция форматирования использует примерно 40 - 50 из них

интересно почему?
Автор: Zakkazak
Дата сообщения: 25.12.2008 17:05
По десятичной системе:
Сектор конца разела = 63
Цилиндр конца разела = 509

В сабже это показывается так: 7F FD

Допустим надо исправить 509 на 609, как это делается?
Автор: euheny
Дата сообщения: 26.12.2008 00:34
Zakkazak
Alt+F5 попробуй
Автор: Zakkazak
Дата сообщения: 26.12.2008 00:56
Да наверное самое-то..

А поиск секторов можно ссузить по следующему критерию:
только те сектора содержащие 55AA в смещении 512-510, которые смежны друг сдругом
Автор: lorents
Дата сообщения: 02.01.2009 21:34
как редактировать ресурс если он сжат?
Автор: Victor_VG
Дата сообщения: 02.01.2009 22:37
lorents

Что ты имеешь ввиду? Если ты точно знаешь модифицируемые биты это одно, а иначе - только сначала распаковать файл, не то натворишь делов...
Автор: lorents
Дата сообщения: 02.01.2009 22:41
Victor_VG
я не знаю как распаковать? я даже не знаю чем паковали
есть идеи как мне помочь
Автор: lorents
Дата сообщения: 03.01.2009 16:33
ура я смог распаковать мой exe'шник
Автор: embrace909
Дата сообщения: 02.02.2009 19:51
Посмотрел почему в WinHex 15 не вводятся русские буквы и выявил следующие нюансы:
Русские буквы вводятся в эту программу так: последние 2 значения кода символа буквы пишутся напрямую в Hex поле и получаются те английские буквы которые соответствуют данному коду.
То есть у клавиши "а" код 0430, б - 0431, в-0432, Ё - 0401, я - 044f и вводятся они в виде последних 2 значений сразу в hex код 30,31,32,01,4f и получаются соответствующие им буквы "012.O"

Первая идея - создать новую раскладку клавиатуры назначив соответствующим клавишам те коды, которые оканчиваются на Hex значения русских букв, то есть для клавиши "я" надо поставить код 00ff и должно вводиться якобы Hex код ff и отображать в программе русскую букву "я". Но тут опять подводные камни - в своем логе Microsoft Keyboard Layout Creator 1.4 предупреждает о несовместимости вводимых таких букв в неюникодовые программы, а также что такие символы не включены в текущую кодовую страницу 1251 (кириллица) для русской Windows.
Так оно и вышло - при наборе этих символов в WinHex высвечиваются знаки вопроса.

Может это наталкнет кого-нибудь на мысль как по-другому можно схитрить заставив набирать русские буквы при ANSI-кодировке?

Я использовал для создания новых раскладок клавиатур Microsoft Keyboard Layout Creator 1.4 - http://download.microsoft.com/download/1/1/8/118aedd2-152c-453f-bac9-5dd8fb310870/MSKLC.exe

А для удобного просмотра имеющихся раскладок клавиатур KbdEdit Demo - http://www.kbdedit.com/downloads/KbdEditDemo.zip



Страницы: 123456789101112131415161718192021222324252627

Предыдущая тема: Как грузануть RedHat при NTLoader в MBR?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.