Суть проблемы
Первый взгляд
Сразу же возникшую мысль о подменяемых шлюзах по-умолчанию, потенциальном заворачивании всего трафика в VPN отбрасываем как нерабочую, т.к. всего этого нет ни в одном из используемых подключений. Web-интерфейс сканера по-прежнему доступен, в конце-концов, он банально пингуется. Тогда мне, как сетевому инженеру в первую очередь, стало интересно как происходит обнаружение сканера в сети.
Для этого я воспользовался Wireshark, запустив его без VPN подключения на локальном сетевом интерфейсе. Обнаружил, что приложение отправляет широковещательный udp пакет на 1124 порт, на что сканер и откликается. Теперь подключаем VPN и на локальном интерфейсе полная тишина, никаких даже исходящих пакетов.
А что же там внутри?
Ну что ж, очевидно, что программа почему-то начинает слать пакеты не в тот интерфейс, и ей там, конечно, никто не откликается. Как это исправить, мне было совершенно непонятно, т.к. если бы приложение руководствовалось таблицей маршрутизации вместе с адресом сканера, или еще чем-то вменяемым, то все должно было быть нормально, однако это было не так. Значит, нужно хотя бы понять алгоритм выбора интерфейса, а осуществить я это решил с помощью OllyDbg.
Запустив под отладчиком NSCSysUI_XEROX.exe (собственно приложение сетевого сканирования, к которому прилагался ряд *.dll), я, ожидаемо, ничего не понял, т.к. это хоть и не первый мой опыт реверс-инжиниринга, но и предыдущие особенным успехом не отличались.
Обнаружение сканера явно происходило в том числе после нажатия кнопки «Обновить», и я обратил внимание, что в OllyDbg в этот момент происходит какой-то отладочный строковый вывод. Последним сообщением являлось как раз о вроде как выбранном IP адресе интерфейса:
За эту строку «Selected NIC IP» я и решил зацепиться. Попытался ее сразу же поискать через Search For — All referenced strings, но там ее не оказалось, что повергло меня в некоторое уныние и долгое F7 от точки входа в .exe файл. В результате выяснилось, что совершенно неудивительно отсутствие строки там, где я ее искал, т.к. этот отладочный вывод принадлежит вызову из NSCProtocol_XEROX.dll, в котором то уже строка успешно находится, и, ура-ура, вот эта процедура с выводом сообщения:
Но это пока неинтересно, ищем, что же там вообще в этой процедуре. Первым делом в ней глаз зацепился за вызов функции gethostbyname(), которая, как говорит нам MSDN, в том числе возвращает весь список IP адресов по указанному символьному имени.
Комментарии говорят сами за себя. Увидев такую странную логику приложения, я подумал, что вот он ключ — программа просто использует первый из массива IP адресов, а по остальным просто впустую пробегает. Эту уверенность подкрепил тестовый вызов gethostbyname(), в возвращаемой структуре которого в массиве адресов на первом месте всегда появлялся IP адрес VPN подключения. И тут у меня возникло два решения. Первое — написать загрузчик, который перехватывал бы gethostbyname() для указанного процесса и возвращал, либо ставил на первое место нужный IP адрес. Но т.к. я такое уже когда-то делал, то это было не спортивно, и я решил попробовать второе — пропатчить dll хотя бы на примитивном уровне.
Я заменил весь указанный кусок кода на то, что по-моему более соответствовало моему случаю (хотя надо признаться, ничем не отличается от подхода приложения) и прогонял единственный call (считая, что он какой-то крайне полезный), участвующий в вышеуказанном коде не только по первому IP адресу, но по всем встретившимся:
Что по моим предположениям должно было заставить приложение выбирать не первый IP адрес, а последний. Ну или все разом.
Однако, в поведении приложения это не изменило совсем ничего. На такой исход также намекало то, что при выводе той отладочной строки использовалась область памяти, в которую запись еще даже не происходила. Что ж, смотрим дальше.
Момент истины
The GetAdaptersInfo function can retrieve information only for IPv4 addresses.
The order in which adapters appear in the list returned by this function can be controlled from the Network Connections folder: select the Advanced Settings menu item from the Advanced menu.
Если вы, как и я (а с администрированием windows я сталкиваюсь, начиная с win2000 server), раньше никогда не видели этого меню, то вот где оно в Win7:
Где, конечно же, я увидел, что все мои VPN-адаптеры стоят выше локального сетевого подключения, переместив которое на самый верх, я решил изначальную проблему.
Страница 87
Сканирование в общую папку на компьютере — по сети
Многофункциональный принтер Phaser® 6128MFP
Сканирование в общую папку на компьютере
— по сети
Настройка сканирования на компьютер
Прежде чем использовать принтер в качестве сетевого сканера, необходимо
выполнить следующее.
1. Создать на компьютере общую папку.
2. Создать в приложении CentreWare IS или в редакторе адресной книги адрес,
указывающий сканер на компьютере.
Подробные сведения см. раздел
Сканирование на компьютер в сети
Если общая папка и адрес для принтера еще не созданы, см. раздел
Для сканирования на компьютер в сети выполните следующее.
1. На панели управления принтера нажмите кнопку Скан.
2. Выберите Комп. (в сети) и нажмите кнопку OK.
3. Выберите пункт Сканир. куда: и нажмите кнопку OK.
4. С помощью кнопки Стрелка вверх или Стрелка вниз выберите адрес
сервера FTP и нажмите кнопку OK.
5. Чтобы изменить другие настройки сканирования, с помощью кнопки Стрелка
вверх или Стрелка вниз выберите нужные настройки и внесите изменения.
6. Нажмите кнопку Старт.
Принтер начнет сканировать документы в общую папку на компьютере.
Знаете, на моей практики, мне довелось подключить очень много таких периферийных устройств как принтеры и сканеры. И знаете если с принтерами все ОК, то сканеры я ужасно не люблю подключать, так как там обычно всегда вылезет какой-нибудь косяк, на который, чаще всего, придется потратить значительное количество времени.
Но все же сканер, в большинстве офисов, является неотъемлемым устройством и обычно хотя бы одно устройство позволяет покрыть необходимость в сканере на один или два кабинета. Это конечно же речь об обычном планшетном сканере, если же рассмотреть небольшое мфу, то тут открываются другие горизонты и охват пользователей, которым может понадобится сканер, может быть гораздо больше.
Ну а третий вариант — это использование больших МФУ, к которым, например, относится Xerox WorkCenter 7328 или 7225. И вот как раз эту статью я хочу посветить тому как правильно настроить на этих устройствах сетевое сканирование, что бы каждый пользователь смог отправлять отсканированный файл прямо себе на компьютер.
Что нужно для сетевого сканирования на Xerox WorkCentre 7328
Саму настройку сетевого сканера на Xerox WorkCentre можно поделить на три основных пункта, которые необходимо будет выполнить:
- Настроить папку с общим доступом, куда будут попадать отсканированные документы;
- Создать пользователя, с помощью которого принтер будет подключатся к компьютеру;
- Настроить профиль сканирования непосредственно на самом принтере, где будут указаны все необходимые настройки сетевого сканирования.
Если сетевое сканирование на Xerox WorkCentre 7328, 7225 будет настраиваться нескольким пользователям, тогда данную процедуру нужно будет проводить на каждом из подключающихся компьютеров.
Или как вариант можно просто сделать отдельную общую папку для сканирования, на определенном ПК, к которой будет иметь доступ каждый пользователь и после сканирования сможет забрать необходимый документ просто зайдя в эту сетевую папку. Таким образом будет меньше затрат времени на подключение каждого компьютера или создания шаблонов на самой МФУ.
Создаем папку с общим доступом для сканирования по сети
Папка с общим доступом необходима для того, чтобы МФУ могла переместить туда документ, после завершения процесса сканирования.
Создать папку можно в любом месте операционной системы, неважно будет это диск D или тот же рабочий стол.
В примере я создам папку на рабочем столе, дам ей название Scan и сразу же перейду в её свойства.
Переходим в раздел доступ и там нажимаем « Расширенная настройка ».
Ставим галочку « Открыть общий доступ к этой папке » и после чего щелкаем на кнопку « Разрешения ».
Тут необходимо дать полный доступ как на чтение, так и на запись, так как сканер будет использовать именно запись, а если не поставить данную отметку, то при попытке санирования, вместо документа, МФУ сразу же распечатает отчет о том, что документ был отсканирован, но не доставлен в папку, указную в профиле сканирования.
Сохраняем внесенные изменения, закрывая все окна нажатием на « ОК » и переходим к следующему шагу.
Учетная запись для сканирования
Зачем создавать отдельную учетную запись для сканирования?
Конечно же, можно, при настройке профиля для сканирования, указать Вашу текущею, локальную учетную запись, или даже доменную, главное только, чтобы там был установлен пароль.
Но как показала практика проще всего создать отдельную локальную учетную запись с простым паролем и использовать именно её, так можно точно быть уверенным, что не была допущена ошибка в пароле или что домен где-то не пускает принтер, и что компьютер действительно без проблем воспринимает учётку, которой пытается подключится МФУ к общей папке.
Для создание учетной записи заходим в « Управление », нажав правым кликом по « Мой компьютер », после переходим в раздел « Локальные пользователи », и там щелкнув по паке « Пользователи » выбираем « Новый пользователь ».
Ну а дальше заполняем необходимы формы указав в поле « Пользователь »: admin и « Пароль »: admin , если же компьютер находится в домене возможно понадобится придумать пароль на восемь символов, в таком случае можно, например, написать « Administrator2019 ».
После этого можно переходит непосредственно к настройке профиля сканирования.
Создаем профиль сканирования в Xerox WorkCentre 7328
Для настройки профиля сетевого сканирования нам понадобится веб-интерфейс, это значит, что МФУ уже должна быть настроена и подключена к сети с уникальным IP-адресом к которому мы и будем подключатся.
Открыв веб-обозреватель, в строку адреса вводим IP МФУ, таким образом мы попадем на её веб-интерфейс.
Теперь идем в раздел « Свойства » где переходим в « Режимы » — « Сетевое сканирование » — « Настройка хранения файлов ».
В « назначение файла по умолчанию », напротив профиля нажимаем на « Редактировать » и начинаем вносить всю необходимую информацию.
- Понятное имя : указываем название профиля, например, фамилию конечного пользователя;
- Протокол : SMB;
- Имя хоста / IP-адрес и порт : указываем IP адрес или имя компьютера, к которому будет подключатся МФУ для сохранения файла, порт оставляем 139, пример: 10.0.11.121:139.
- Общий : вот как раз здесь указываем имя сетевой папки, в которую будут помещается отсканированные файлы;
- Учетные данных входа для доступа к назначению : указываем, что бы данные брались из системы;
- Вход в систему : Здесь указываем учетную запись admin;
- Пароль: вводим пароль учетной записи admin;
- Введите пароль еще раз : повторяем ввод пароля;
И завершаем настройку профиля сетевого сканирования нажатием на « Применить », после чего сразу запросит логин и пароль администратора для сохранения новых параметров.
По умолчанию на МФУ от Xerox, в частности на Xerox WorkCentre 7328, Используется логин: 11111 , пароль: x-admin , кроме этого иногда встречаются такие вариации паролей как 11111/admin , admin/11111 и 1111/admin .
Профиль сетевого сканирования создан, теперь осталось настроить шаблон сканирования, который мы будем выбирать непосредственно на самой МФУ при сетевом сканирование.
Открываем вкладку « Сканирование » — « Шаблоны работ » — « Создать шаблон ».
Указываем имя шаблона и по желанию описание, нажав после этого « Добавить ».
В данном шаблоне вы сможете изменить все необходимы параметры, например, установить черно-белое или цветное сканирование, разрешение, указать в каком формате сохранять документ и т.д.
Но нас в первую очередь интересует раздел « Файл », в котором нажимаем на кнопку « Редактировать »
Тут нужно будет изменить несколько параметров:
- Способ записи файла : Ставим « Переименовать » или « Добавить к старому ».
- Назначение файла : выбираем профиль сканирования, который был создан нами ранее.
Применяем параметры и идем пробовать отсканировать необходимы документ.
Сканирование по сети на Xerox WorkCentre 7328
Итак, подходим к МФУ и в меню выбираем режим « Сетевое сканирование ».
На экране появится перечень доступный шаблонов для сетевого сканирования, соответственно если он у Вас там один, то на мониторе вы увидите шаблон по умолчанию и созданный вами.
Соответственно для сканирования помещаем документ в податчик, выбираем наш шаблон и нажимаем на зеленную кнопку, после завершения процесса сканирования идем проверяем появился ли файл в папке Scan.