Формат SCSI команд

Тема в разделе "WASM.ELECTRONICS", создана пользователем wint, 7 фев 2007.

  1. wint

    wint New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    66
    Доброго времени суток.

    Скачал себе программу Plscsi - (http://members.aol.com/plscsi/windows.html)... Она вроде как позволяет посылать команды SCSI устройствам...
    (в частности я пробую с USB флэшкой)
    Немогу вкурить одного, в "помощи" к проге написан пример:
    Код (Text):
    1. >plscsi -v -x "1B 0 0 0 02 0" с комментарием - STOP and EJECT
    (пример работает....)
    командой я так понимаю является строка "1B 0 0 0 02 0"
    Если я ставлю сниффер на USB порт получаю что-то вроде:
    Код (Text):
    1.  55 53 42 43 4C 12 00 00 00 00 00 00 00 00 06 00
    2.  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    (Перехватить команду STOP and EJECT не получилось, объяснять почему долго)

    Никак не могу понять как соотносится содержание перехваченных пакетов, с отправляемыми командами, т.е. как команда преобразуется в передаваемый пакет.
     
  2. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
  3. wint

    wint New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    66
    Ustus
    Спасибо... описание формата SCSI команд нашел на www.t10.org

    А вот толкового описания формата USB-пакета так и не нашел=(
    Т.е. нашел что с 16-ого байта начинается SCSI команда, а вот за что отвечают первые 15 байт, непонятно. И это в запросе, а с ответом устройства вообще мрак.
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Плохо искал - лежит на самом видном месте :)
    Если сильно интересует USB - посмотри спецификации тут:
    http://www.usb.org/developers/docs/ (спецификации USB)
    http://www.usb.org/developers/devclass_docs#approved (спецификации различных классов устройств)
    Конкретно для флэшек тебе надо вот это почитать:
    http://www.usb.org/developers/devclass_docs/usb_msc_overview_1.2.pdf
    http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf
    В большей степени вторую доку - там протокол описан.

    Просто USB Flash drive это не совсем SCSI, просто в его протокол инкапсулируются SCSI команды - но далеко не все.
    Т.е. набор команд там ограниченный.
     
  5. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Решил поднять старую тему и задать вопрос от новичка: Можно ли при помощи инкапсуляции SCSI команд в протокол флэш получить доступ к USB Flash непосредственно к "физике" устройства, т.е. встать ниже уровня файловой системы? Например, считать содержимое сектора физического, а не логического?
    И если ответ всё-таки "Да, можно", то будет ли этот способ универсальным для всех флэшек? Спасибо!
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Простая логика подсказывает, что нет. На фига городить такой огород. SCSI сделано из-за совместимости - вроде это стандарт.
    А физика наверняка делается через родной протокол, через "недокументированные" команды :)
     
  7. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Спасибо, мне недавно тоже стало очевидно, что ответ отрицательный. Ещё маленькая просьба, нет ли у кого внятных материалов(можно на английском) о физическом устройстве флэшек? Все что нашёл на данный момент - говно. Толком не объяснено, что такое страницы, столбцы, блоки. Как происходит чтение/запись на флэшку? Если пару бит пришли в негодность, как подбираются резервные биты и проч. Пока одни вопросы... Буду признателен за любую помощь!
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Flesh состоит из двух микросхем. Микросхема управления и микросхема памяти и яркой этикетки с брэндом.
    К примеру вот.
    http://pdf1.alldatasheet.net/datasheet-pdf/view/217832/ETC/AU6980.html
    http://pdf1.alldatasheet.net/datasheet-pdf/view/85043/SAMSUNG/K9K2G08Q0M.html

    Начинка везде одна и таже, а названия могут отличаться.

    Биты не помечаются. Флэш он на то и флэш что стирание идет блоками и запись тоже, отсюда большая скорость чтения записи. Отсюда в случае выхода из строя бита помечается весь блок как плохой. Еще есть ECC вернее может быть обычно редко включают так как сжирает много памяти.
     
  9. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Крайне здравые пдф-ники, погрузился в чтение, спасибо огромное!
     
  10. ov4inka

    ov4inka New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2008
    Сообщения:
    37
    Простите лузера, тоже увлекшегося прочтением данных пдф'ок, правильно ли я представляю себе взаимодействие устройств в обычной флешке:
    1. Приходит команда( допустим, записи такого-то сегмента) в каком-то виде от компьютера на контроллер, установленный в флеке.
    2. Контроллер сравнивает данный адрес с таблицей bad-сегментов и после этого посылает команду чипу памяти для записи данных в такой-то блок, соответствующий данному сегменту.

    Так все происходит? То есть я не смогу, допустим, считать всю физическую память из чипа памяти, если контроллер не предусматривает на то спец команд?
     
  11. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    ov4inka
    Ну, на флешках, емнип, все еще страшнее, там что-то типа таблицы трансляции адресов, которая меняется таким образом, чтобы уменьшать количество записей в один блок. Если блок дефектный, то его в этой таблице просто нет, как-то так. Пусть, если что, гуру меня поправят.

    Совершенно верно, причем не обязательно с чипа, производители HDD давно уже таким занимаются :)
    Да и правильно, зачем не-спец-приложениям читать дефектную память?
     
  12. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Хм... Попробую на пальцах сформулировать вопрос. Рассмотрим, например, какого-нибудь Kingstona, он берёт документацию на контроллер и чип памяти USB Flash, прошивает контроллер собственным программным обеспечением.

    1. Верно ли, что кингстон обязательно закладывает в это ПО SCSI команды для совместимости? (сам думаю, что верно).

    Продолжаем. Пусть стоит задача считать k-ый блок памяти с USB Flash от кингстона именно на уровне физики устройства (т.е. ниже логического уровня). При помощи скази команд этого сделать не получится. Поэтому второй вопрос:

    2. Если кингстон не заложит в прошивку контроллера подобной команды (считывание произвольного блока), то задача становится просто абсолютно невыполнимой?

    3. Документирует ли кингстон и ему подобные ребята список команд и их параметров, которые можно посылать контроллеру USB Flash напрямую?

    Спасибо!
     
  13. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    1) Не факт. Возможна программная эмуляция. IDE диски у Микрософта очень долгое время оставались SCSI-устройствами. Это что все производители поддерживали ATA и еще к нему SCSI ?
    3) Ни в коем разе. Конкуренты сожрут вмиг! Но снифят и реверсят противные...
     
  14. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    Буду премного благодарен, если вы подскажите где искать результаты реверса!
     
  15. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    mart
    гы. вкомпилить перехватчик на порты в опенсорсный эмуль. подавать простые команды и снифать протокол. или железный влепить. или сорцы опенсорсных дров смотреть.
    впрочем, тут же внешнее усб. железный снифер (вроде и програмный даж под вынь видел). или сорцы дров с линя. план тоже нормально с усб дисками. во всяк случае 1 (2 не пробовал толком. оно у меня на старой машине)
     
  16. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    http://electronics-diy.com/electronic_schematic.php?id=717
    например
     
  17. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    всякие доки и красивые картинки
    http://www.nbglin.com/ft232.htm
     
  18. mart

    mart New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2007
    Сообщения:
    67
    А ссылки, которые вы запостили, это документация на контроллер или сниффер какой-то? То ли я сегодня не выспался, то ли туплю...))
     
  19. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    мож и я туплю, но я так понял, что вы хотите найти способ узнать команды закрытого протокола. вот и проссылил микру и пару схем, чтоб было от чего отталкиваться для хардверного снифера.