поиск и замена хэша пользователей со старого сервера на новый

Ваш сканер не отправляет мусор. Это совершенно обычные отчеты о вводе для обычного USB HID-клавиатуры с обычным 8 -байтовым дескриптором отчета «загрузки».

Расшифровав их, видно, что ваш сканер не отправляет ключи для «S», «I» и т. д. напрямую. Скорее, это имитация ввода их с помощью и #x2387; Клавиша Alt . При этом он делает несколько довольно неверных предположений об операционной системе, любое из которых или все они могут легко оказаться ошибочными.

Например:

  • Отчет о вводе
    04 00 62 60 5b 00 00 00
    представляет собой одновременное нажатие клавиш с кодами использования USB HID E2, 62, 60и 5B.
  • E2, 62, 60и 5B— коды использования USB HID для и #x2387; Левый Alt , Ins/0 , ↑/8 и PgDn/3 .
  • 083 10 — это код "S".
  • Отчет о вводе
    00 00 00 00 00 00 00 00
    указывает, что все эти клавиши были отпущены.

Остальное действительно декодируется как «I», «P», «-», «4», «-» и «1», набранные таким образом, как и #. х2387; Alt плюс три десятичных числа. (Два последних входных отчета — это пресса и выпуск и #x2ba0; Возврат .)

Здесь вы можете увидеть несколько неверных предположений.

  • Сканер предполагает, что драйвер клавиатуры анализирует отчет о вводе в определенном направлении. Это не гарантируется, и сканер должен правильно генерировать отдельные отчеты для Ins/0 , ↑/8 и PgDn/3 при нажатии и отпускании в поверните, удерживая нажатой клавишу-модификатор. Это зависит от случайности реализации, и сканер на самом деле отправляет одновременное нажатие и отпускание всех четырех клавиш .
  • Сканер предполагает, что & #x2387; Для этого используйте левый Alt . Но в некоторых операционных системах и раскладках клавиатуры это может быть и #x21EE; Alt Gr / и #x2387; Вместо этого нажмите правый Alt , которыйE6(закодирован как 40в первом байте входного отчета ), а не E2.

    Действительно, ваша текущая операционная система, драйвер клавиатуры и раскладка клавиатуры могут вообще не поддерживать ввод символов с помощью таких кодов. (Например, эмулятор терминала ядра FreeBSD syscons. Как, впрочем, и Microsoft Windows. Но набор инструментов nosh console-fb-realizer, графические интерфейсы, такие как LXDE и XFCE4 , и кажется все доступные графические интерфейсы в Ubuntu ; не надо.)

  • Сканер предполагает, что NumLock отключен. Если NumLock включен, он также должен имитировать нажатие одной из клавиш Shift, чтобы изменить смысл блокировки.

В некоторых сканерах этот материал можно модифицировать, сканируя специальные «управляющие» штрих-коды. Здесь, наверное, так и произошло. Вы отсканировали «управляющий» штрих-код, который переключил сканер в рабочий режим, с которым не справляются ваша операционная система, драйвер клавиатуры и раскладка клавиатуры. В этом случае вам нужно обратиться к руководству вашего сканера и найти управляющий код, который отключает поведение.

Например :Для сканера NLS -серии HR32 это результат перевода сканера в режим «ALT+Клавиатура 2» или «ALT+Клавиатура режим 3», и вам потребуется переключиться обратно в «отключить ALT+Клавиатура» или «ALT+Клавиатура в режиме 1».

0
10.10.2019, 16:00
1 ответ
awk 'BEGIN{ OFS=FS=":" }
{
  if (NR==FNR) {
    pwd[$1]=$2
  } else {
    if ($2 ~ /^!/ && $1 in pwd) $2=pwd[$1]
    print
  }
}' shadowA shadowB

Когда первый файл shadowAбудет обработан (NR==FNR), сохраните хэш пароля в массиве pwdс именем пользователя в качестве индекса.

Когда второй файл shadowBобрабатывается(else)и второе поле начинается с!(может быть !или!!)и имя пользователя присутствует в массиве паролей ($1 in pwd), затем обновите значение второго поля. После этого выведите текущую строку shadowB.

0
28.01.2020, 03:11

Теги

Похожие вопросы