Второй день мучает вопрос (даже спать сложно стало , сроки горят, отступать некуда — сзади Москва ну и все такое ). Вопрос следующего содержания.
В заголовке протокола прописывается информация, являющаяся общей для всех пакетов протокола SMB. В зависимости от команды, указанной в заголовке, соответствующим образом формируется оставшаяся часть пакета (параметры и данные). Так вот во всех официальных документах, сколько я в них не копался, так и не смог уяснить, как именно коррелирует конкретная форма задания данных и параметров в зависимости от указанной в заголовке команды. Особенно непонятно про случаи ***_AND_X. Т.е. когда в параметры и данные вкладываются другие SMB-пакеты (т.е. multiple request/response).
Вот. Несколько сумбурно получилось, но пока более внятно не могу выразиться
Коллеги, просветите пожалуйста
МВС
Люди слышат только те вопросы, на которые они в состоянии найти ответ. (с)
Здравствуйте, muh, Вы писали:
muh>В заголовке протокола прописывается информация, являющаяся общей для всех пакетов протокола SMB. В зависимости от команды, указанной в заголовке, соответствующим образом формируется оставшаяся часть пакета (параметры и данные). Так вот во всех официальных документах, сколько я в них не копался, так и не смог уяснить, как именно коррелирует конкретная форма задания данных и параметров в зависимости от указанной в заголовке команды. Особенно непонятно про случаи ***_AND_X. Т.е. когда в параметры и данные вкладываются другие SMB-пакеты (т.е. multiple request/response).
Говорю же, перечитал всю возможную документацию. Эту в том числе. Сейчас читаю CIFS 2002.
Ворос только поменялся А именно — когда идут пакеты SMB_COM_TRANSACTION (0х25) количество параметров в моем случае не совпадает с числом, указанным в стандарте. Вот и думаю — или я что-то еще не нашел, или это особенность используемого SMB-сервера ?
Если что-то знаешь, намекни
Здравствуйте, Аноним, Вы писали:
А>Говорю же, перечитал всю возможную документацию. Эту в том числе. Сейчас читаю CIFS 2002. А>Ворос только поменялся А именно — когда идут пакеты SMB_COM_TRANSACTION (0х25) количество параметров в моем случае не совпадает с числом, указанным в стандарте. Вот и думаю — или я что-то еще не нашел, или это особенность используемого SMB-сервера ? А>Если что-то знаешь, намекни
Особенность SMB-сервера?.. Возможно, если он у тебя из левых
А ты под параметрами что понимаешь, WordCount или ParameterCount?
И какая транзакция в пакете, mailslot или named pipe?
Для "mailslot" и многих подкоманд "named pipe" ParameterCount = 0.
А WordCount — он равен указанному в стандарте + SetupCount.
Re[4]: SMB : теряюсь в догадках
От:
Аноним
Дата:
01.07.04 14:37
Оценка:
Здравствуйте, leksei, Вы писали:
L>Особенность SMB-сервера?.. Возможно, если он у тебя из левых
L>А ты под параметрами что понимаешь, WordCount или ParameterCount? L>И какая транзакция в пакете, mailslot или named pipe? L>Для "mailslot" и многих подкоманд "named pipe" ParameterCount = 0. L>А WordCount — он равен указанному в стандарте + SetupCount.
Я-то понимаю (в этом посте ) что количество параметров — это WordCount. Так вот получается так, что в моей реализации протокола (Samba) WordCount для TRANSACTION2&&TRANSACTION — т.е. для пакетов с командами 0х32 и 0х25 сответственно, WordCount не соответсвует указанному в стандарте значению. Пример — в стандарте на 0х25 WordCount предполагается 19+SetupCount, Samba почему-то дает 16
Опять-таи, если знаешь, в чем косяк, намекни А то "не орошает" (с)
Здравствуйте, Аноним, Вы писали:
А>Я-то понимаю (в этом посте ) что количество параметров — это WordCount. Так вот получается так, что в моей реализации протокола (Samba) WordCount для TRANSACTION2&&TRANSACTION — т.е. для пакетов с командами 0х32 и 0х25 сответственно, WordCount не соответсвует указанному в стандарте значению. Пример — в стандарте на 0х25 WordCount предполагается 19+SetupCount, Samba почему-то дает 16
Камрад, 19+SetupCount — это Primary Client Request с командой SMB_COM_NT_TRANSACT.
А для TRANSACTION2 и TRANSACTION Primary Client Request будет 14 + SetupCount. Отсюда можно и 16 получить
Re[6]: SMB : теряюсь в догадках
От:
Аноним
Дата:
02.07.04 04:58
Оценка:
Здравствуйте, leksei, Вы писали:
L>Здравствуйте, Аноним, Вы писали:
А>>Я-то понимаю (в этом посте ) что количество параметров — это WordCount. Так вот получается так, что в моей реализации протокола (Samba) WordCount для TRANSACTION2&&TRANSACTION — т.е. для пакетов с командами 0х32 и 0х25 сответственно, WordCount не соответсвует указанному в стандарте значению. Пример — в стандарте на 0х25 WordCount предполагается 19+SetupCount, Samba почему-то дает 16
L>Камрад, 19+SetupCount — это Primary Client Request с командой SMB_COM_NT_TRANSACT. L>А для TRANSACTION2 и TRANSACTION Primary Client Request будет 14 + SetupCount. Отсюда можно и 16 получить
Причем с кодом уже 0xA0. У меня ночью приступ прозрения был.
В общем,
Re[6]: SMB : теряюсь в догадках
От:
Аноним
Дата:
03.07.04 13:05
Оценка:
Здравствуйте, leksei, Вы писали:
Слушай. а еще вопрос можно ?
Если я правильно понял, то по сути — COM_TRANSACTION — только для работы с каналами, слотами и т.д., COM_TRANSACTION2 — трансфер информации о трактовке следующих пакетов (через указанные в Setup операции), а сами данные гонятся непосредственно в READ_SNDX и WRITE_ANDX пакетах ?
Здравствуйте, Аноним, Вы писали:
А>COM_TRANSACTION — только для работы с каналами, слотами
Да.
А>COM_TRANSACTION2 — трансфер информации о трактовке следующих пакетов (через указанные в Setup операции)
Это одна транзакция (и в Setup указывается одна операция), которая может передаваться одним пакетом или разбиваясь на несколько.
А>а сами данные гонятся непосредственно в READ_ANDX и WRITE_ANDX пакетах ?
Как правило да. Но есть и другие команды read/write.
Re[8]: SMB : теряюсь в догадках
От:
Аноним
Дата:
05.07.04 07:09
Оценка:
Здравствуйте, leksei, Вы писали:
А>>а сами данные гонятся непосредственно в READ_ANDX и WRITE_ANDX пакетах ? L>Как правило да. Но есть и другие команды read/write.
Тогда еще вопрос. Положим, мне нужно извлекать из трафика клиента файлы. Обработав трафик сервера, я получаю соответствующие закачиваемым на клиента файлам Fid. После этого — обработка CREATE_ANDX response на клиенте. Сколько должен быть там равен WordCount ? У меня опять не сходится По идее — 34, у меня — 21
Здравствуйте, Аноним, Вы писали:
А>Тогда еще вопрос. Положим, мне нужно извлекать из трафика клиента файлы. Обработав трафик сервера, я получаю соответствующие закачиваемым на клиента файлам Fid. После этого — обработка CREATE_ANDX response на клиенте. Сколько должен быть там равен WordCount ? У меня опять не сходится По идее — 34, у меня — 21
Да... Посмотрел CREATE_ANDX server response, у меня WordCount=42. Но все параметры на месте (34) и bytecount=0, а в конце пакета левые 32 байта
Re[10]: SMB : теряюсь в догадках
От:
Аноним
Дата:
05.07.04 11:36
Оценка:
Здравствуйте, leksei, Вы писали:
L>Да... Посмотрел CREATE_ANDX server response, у меня WordCount=42. Но все параметры на месте (34) и bytecount=0, а в конце пакета левые 32 байта L>
Камрад
Re[10]: SMB : теряюсь в догадках
От:
Аноним
Дата:
05.07.04 11:37
Оценка:
Здравствуйте, leksei, Вы писали:
L>Да... Посмотрел CREATE_ANDX server response, у меня WordCount=42. Но все параметры на месте (34) и bytecount=0, а в конце пакета левые 32 байта L>
Слушай, у меня догадка ... ты не на W2K случаем смотрел ? Насколько я понял, она рисует 42 из-за своего редиректора.
Здравствуйте, Аноним, Вы писали:
А>Слушай, у меня догадка ... ты не на W2K случаем смотрел ? Насколько я понял, она рисует 42 из-за своего редиректора.
Нет, на XP.. Да и редиректор тут не при чем. Пакет же от LANMan сервера..
Re[12]: SMB : теряюсь в догадках
От:
Аноним
Дата:
05.07.04 15:56
Оценка:
Здравствуйте, leksei, Вы писали:
L>Нет, на XP.. Да и редиректор тут не при чем. Пакет же от LANMan сервера..
В общем, в исходниках самбы число 42 объясняется примерно так: дескать, если на 2к не дать пакет с таким WordCount, то она может оборвать синхронизаию
Я в глубоой задумчивости