Что удар упорядочивает '\033 [999D' средний и где он объяснен?

Не драйвер устройства, а скорее информативный PDF вещей, которые необходимо будет знать для осуществления этого использования: http://www.remote-exploit.org/content/keykeriki_v2_cansec_v1.1.pdf

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

19
21.02.2014, 11:23
4 ответа

См. Эту ссылку http://www.termsys.demon.co.uk/vtansi.htm . Как говорит Антон, \ 033 - это восьмеричный код в стиле C для escape-символа. [999D перемещает курсор назад на 999 столбцов, предположительно методом грубой силы для перехода к началу строки. [2K удаляет текущую строку. \ r - это возврат каретки, который перемещает курсор обратно в начало текущей строки, и представляет собой escape-последовательность в стиле C, а не управляющую последовательность терминала.

Обновление

Как отмечали другие люди, эти управляющие последовательности не имеют ничего общего с bash , а имеют отношение к терминальному устройству / эмулятору, на котором отображается текст. Когда-то эти последовательности обычно интерпретировались совершенно другим оборудованием. Первоначально каждый отвечал на совершенно разные наборы кодов. Чтобы справиться с этим, библиотеки termcap и terminfo используются для написания кода, совместимого с несколькими терминалами. Команда tput является интерфейсом к библиотеке terminfo (поддержка termcap также может быть скомпилирована) и является более надежным способом создания совместимых последовательностей.

При этом существует также стандарт ANSI X3.64 или ECMA-48 . Любая современная реализация терминала будет использовать это. terminfo и termcap по-прежнему актуальны, поскольку реализация может быть неполной или включать нестандартные расширения, однако для большинства целей можно с уверенностью предположить, что общие последовательности ANSI будут работать.

xterm FAQ предоставляет интересную информацию о различиях между современными эмуляторами терминала (многие просто пытаются эмулировать сам xterm ) и о том, как xterm последовательности относятся к терминалам VT100, упомянутым в приведенной выше ссылке.Он также предоставляет окончательный список управляющих последовательностей xterm .

Также обычно используется консоль Linux, полный список управляющих последовательностей для нее можно найти в man console_codes , а также сравнить с xterm .

32
27.01.2020, 19:44
[11738]\033[11739] является экранирующим символом, и эта последовательность не специфична для bash, а интерпретируется терминалом (программным или аппаратным обеспечением (через сеть или последовательную линию)), на котором выполняется программа (bash). Существует множество таких [11740] последовательностей [11741]. [12157]То, что делает каждая из них, зависит от терминала, от которого она зависит, а также может зависеть от любой предыдущей последовательности, изменяющей состояние терминала.[12158]Эти последовательности часто используются для установки [11742]цветов в bash-спрограмме [11743], но я не нашел ваших конкретных примеров на этой странице.
  • .
  • 5
    27.01.2020, 19:44

    '\033[999D'' - смешно. Некоторые терминалы реализуют меньше экранирующих последовательностей, поэтому это может понадобиться, если ни один из '\033[1G', '\033[1;1H', '\033[1;1f', или '\r' не будет вести себя так, как должен, но кто использует текстовое отображение в тысячу столбцов? В этих последовательностях есть man-страница в Linux: [11927]console_codes(4)[11928]. bjh21 имеет подробный список [11929] всех кодов[11930]. В зависимости от того, какая программа разбирает '\033', может быть доступна более понятная подстановка '\e'.[12223]На самом деле, они не предназначены для непосредственного использования - [11931]корректный[11932] способ выдачи команд управления терминалом - с абстракционным слоем, таким как ncurses - но они функционируют так же хорошо, как и строковые литералы..
    3
    27.01.2020, 19:44
    вы можете найти "экранирующий список терминов 033" или "[11786]033 tput[11787]" и посмотреть [11788] http://wiki.bash-hackers.org/scripting/terminalcodes[11789] для получения дополнительной информации перед тем, как кто-то ответит ;]
  • .
  • 0
    27.01.2020, 19:44

    Теги

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