|
|
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Свалилась второстепенная, но срочная проблемка: определить протокол (SMB/CIFS или SMB2), по которому данная сессия общается с сервером. Исходные данные - имя файла или каталога на сетевом диске (обычно, не UNC), необходимо узнать, через какой протокол работают файловые операции. ОС клиента может быть от NT4 до Win10, ОС сервера может быть любой (DOS Lanmanager, конечно, маловероятен, но я бы не исключал) от NT4 до Win10 и всяких Samba. Т.к. API для решения этой задачи присутствует только в Win10, приходится придумывать извращения, пока придумалось следующее: 0. Имя сервера получается из имени файла через ExpandUNCFileName 1. На клиенте можно определить, что он может работать по SMB2 по наличию запущенного драйвера mrxsmb20.sys и версии ОС 2. Для определения, что сервер поддерживает SMB2 нужно послать ему "SMB Negotiate protocol request" с выставленной поддержкой SMB2 на клиенте и посмотреть ответ. Если клиент и сервер поддерживают SMB2, делаю вывод, что работа идет через SMB2 В связи со всем этим вопросы: Знает ли кто иной способ решения данной задачи? Нет ли у кого готовых модулей для формирования и парсинга SMB пакетов? Посылка "SMB Negotiate protocol request", получение ответа и закрытие сокета не приведут к утечкам на сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2020, 22:46 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Изначальная проблема: если клиент и сервер обмениваются через SMB2, функции FileLock/Unlock начинают "косячить" - рушаться индексы в файловой БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 00:11 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Типичное решение: выкидываем файловую СУБД, заменяем на слиент-сервер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 00:17 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Увы, простого решения нет - скорее проще всех перевести на NT4, которая будет работать в VirtualBox. Как Вы предсталяете себе перевод из файловой БД на SQL (скорее всего) кода, которому 30 лет? Это большая система, что там и как работает, толком никто уже не помнит (не знает). С производительностью все хорошо, появилась проблема с SMB2 - что проще решить: всю систему переделать на SQL (или что?) или настоять на SMB1? (Про WannaCry и пр. в курсе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 01:04 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
x1ca4064Как Вы предсталяете себе перевод из файловой БД на SQL (скорее всего) кода, которому 30 лет? Да в общем-то тривиально: раз коду 30 лет, значит используется BDE. Достаточно поменять настройки используемого алиаса с Paradox/dbase на ODBC к какому-нибудь MySQL/MyISAM. Работать станет медленнее, но зато надёжно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 01:10 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Система не на Delphi - просто DBConnection не заменить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 01:14 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Да в общем-то тривиально: раз коду 30 лет, значит используется BDE. Не верно - анекдот про "раз круглое - значит оранжевое" напомнило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 01:17 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
x1ca4064 Система не на Delphi - просто DBConnection не заменить. А почему вы тогда задаёте вопрос в разделе по Дельфи? Тут светлее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:04 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
Если всё так плохо, может попробовать на какой-нибудь NFS всё перевести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:06 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
northener, Конкретизирую вопрос: Нет ли у кого готовых модулей для формирования и парсинга SMB пакетов (да, Delphi - неужели никто не работал с SMB)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:09 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
northener А почему вы тогда задаёте вопрос в разделе по Дельфи? Тут светлее? Да :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:28 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
alekcvp, Как Вы себе это представляете? NFS, вроде, не поддерживает блокировки кусков файла. Перевозить можно все-что-угодно куда-угодно, но задача сформулированна: определить по какому протоколу идет общение клиента и сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:45 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
x1ca4064скорее проще всех перевести на NT4, которая будет работать в VirtualBox. Или на Линукс с Самбой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 12:41 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
ФФФсе просто: 1. Отправляем пакет на 445 порт сервера: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2. Принимаем длину ответа (4 байта в извращенном "сетевом" формате, поэтому для получения длины необходимо преобразовать через ntohl). 3. Читаем эту длину байт. 4. Если начинается со строки #$FE'SMB' - работает по SMB2, если #$FF'SMB' - SMB1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 22:37 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
А, ну да, я тоже путаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 22:47 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
alekcvp А, ну да, я тоже путаю :) У Intel по младшему адресу младший байт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 22:51 |
|
||
|
SMB2 detection
|
|||
|---|---|---|---|
|
#18+
alekcvp А, ну да, я тоже путаю :) В древние времена прочел историю, как будущих мореплавателей учили, на каком борту судна какого цвета фонарь, запомнить не могли. Умудренный опытом и утомленный "тупизной" учеников, старый морской волк сказал: - Тупицы. Расскажу вам как меня учили: есть слово "*****" - это означает Правый - Зеленый Я после этой байки сам помню. Может кто сказать подобное мнемоническое правило для Big- и Little-Endian? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2020, 23:00 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39961498&tid=2038269]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
172ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 456ms |

| 0 / 0 |
