Бу́фер обме́на (англ. clipboard ) — промежуточное хранилище данных, предоставляемое программным обеспечением и предназначенное для переноса или копирования информации между приложениями или частями одного приложения через операции вырезать, копировать, вставить.

Как правило, приложения используют буфер обмена, предоставляемый операционной системой или другой средой через определённый интерфейс. Некоторые приложения могут использовать свой собственный буфер обмена, доступный только в них. Физически, данные буфера обмена хранятся в оперативной памяти компьютера (RAM).

Приложение может записывать в буфер обмена одну и ту же информацию одновременно в нескольких различных форматах. Наиболее информативный формат помещается первым, за ним остальные по убыванию информативности. При вставке информации из буфера обмена обычно используется первый распознанный приложением формат, который будет наиболее информативен для данного приложения. Например, если текстовый процессор копирует в буфер обмена текст: в формате RTF, в виде рисунка WMF и в виде текста без форматирования, этот текст может быть вставлен в другой текстовый процессор с сохранением разметки, в графический редактор — рисунком и в простой текстовый редактор — неформатированным текстом. Операционная система может производить некоторые преобразования форматов информации, если запрошенный формат отсутствует в буфере обмена, но может быть получен из имеющегося, например, изменять кодировку текста [1] .

Вставить объект из буфера обмена можно неограниченное число раз. При копировании информации в буфер его предыдущее содержимое, как правило, пропадает. Однако существуют реализации буфера обмена (например, в пакете Microsoft Office), позволяющие хранить в буфере одновременно несколько объектов и выбирать при вставке, который из объектов вставить.

Содержание

Горячие клавиши для пользования буфером обмена [ править | править код ]

Стандартные горячие клавиши для работы с буфером обмена, применяемые в графических интерфейсах пользователя на PC‐совместимых ПК (для клавиатуры PC101 с раскладкой QWERTY):

  • Скопировать выделенные объекты в буфер обмена: Ctrl + C или Ctrl + Ins .
  • Вырезать выделенные объекты в буфер обмена (для перемещения): Ctrl + X или ⇧ Shift + Del .
  • Вставить из буфера обмена: Ctrl + V или ⇧ Shift + Ins .

Хотя эти комбинации и являются наиболее распространёнными, некоторые приложения могут использовать какие-либо другие комбинации клавиш. Например в X Window System, кроме вышеописанного буфера обмена (выделение « CLIPBOARD »), доступен буфер (выделение « PRIMARY »), для копирования в который достаточно лишь выделить нужную часть текста, а для вставки достаточно нажать среднюю кнопку мыши или же одновременно левую и правую кнопки (имитация средней кнопки). [2] [3] [4]

Диспетчеры буфера обмена [ править | править код ]

Существуют специальные программы — менеджеры буфера обмена, которые расширяют обычно используемые возможности.

Например, к базовым операциям они добавляют возможности:

  • иметь несколько буферов с возможностью сливать, разделять и редактировать их содержимое
  • выбирать буфер, в который будут сохраняться вырезанные или скопированные данные
  • выбирать буфер, из которого данные будут вставляться
  • работать с данными разных форматов
  • сохранять данные для хранения
  • индексировать, помечать и осуществлять поиск по сохранённым данным

Статьи о некоторых менеджерах буфера обмена можно найти в английской Википедии.

Просмотр содержимого буфера обмена в ОС Windows [ править | править код ]

В ОС Windows (Windows 2000 и Windows XP) есть встроенная утилита просмотра буфера обмена — «Папка обмена» («Clipboard Viewer»). Её можно запустить, открыв меню «Пуск» — «Выполнить» — «clipbrd.exe». В более поздних ОС Windows (Windows Vista/7/8/10) производитель ОС (Microsoft) убрал из поставки операционной системы данную утилиту.

Программа просмотра буфера обмена, поставляемая в составе ОС Windows 2000/Windows XP, позволяет просматривать содержимое буфера обмена в виде текста, текста с оформлением (RTF) или изображения (BMP/WMF/EMF). Программа просмотра буфера обмена также позволяет сохранить все содержимое буфера обмена в файл с расширением .CLP. Файлы данного формата можно просмотреть и загрузить в буфер обмена при помощи данной программы просмотра буфера обмена.

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

Мы обойдемся без научных определений, что такое буфер обмена или clipboard по английски, а просто постараемся объяснить простым понятным языком для начинающих пользователей компьютера. Итак, буфер обмена это часть оперативной памяти, выделяемая для временного хранения помещаемой в него информации. Такое объяснение будет понятно далеко не всем, поэтому рассмотрим на более наглядных примерах.

Допустим, вы хотите скопировать какой-нибудь файл или папку в другое место на жестком диске компьютера. Сделать это можно несколькими способами, например, щелкнув на нем правой кнопкой мыши и выбрав в контекстном меню «Копировать». После этого, вы переходите в нужную папку в Проводнике Windows, щелкаете правой клавишей мыши и выбираете «Вставить». В папке появляется копия скопированного ранее объекта.

Что при этом происходит? Когда вы выделяете объект и выбираете в меню «Копировать», он помещается в буфер обмена, а по команде «Вставить» извлекается из буфера обмена в указанное место, причем вставлять из буфера можно сколько угодно раз. Следует иметь в виду, что одновременно в clipboard может храниться только одна порция информации, то есть, снова скопировав в буфер обмена другой объект, предыдущий из него удаляется.

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

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

В Windows XP содержимое буфера обмена можно было посмотреть, запустив файл clipbrd.exe находящийся в C:WindowsSystem32 в более поздних версиях Windows такой возможности нет.

Информация в clipboard хранится в нем только до завершения работы компьютера, перезагрузки или помещения в него следующей порции данных.

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

Помимо системного буфера обмена доступного всем приложениям в компьютере, некоторые программы могут использовать собственный буфер доступный только им.

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

Горячие клавиши

Для работы с буфером обмена помимо меню можно использовать комбинации горячих клавиш, сильно ускоряющие работу.

Операция копирования — Ctrl + C или Ctrl + Ins (Insert)

Операция вставки — Ctrl + V или Ctrl + Ins (Insert)

Операция вырезания — Ctrl + X

Как очистить буфер обмена

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

Если такой способ очистки буфера обмена вас не устраивает то, начиная с Windows Vista, можно создать специальный ярлык в удобном месте для его принудительной очистки. Как создать ярлык можно узнать здесь, вам нужно просто в поле объект написать следующую строку:

Название ярлыка можно сделать любое, например «Очистить буфер обмена». Теперь при запуске этого ярлыка буфер обмена будет очищаться.

Примеры защиты от шпионов

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

Кто отслеживает и перехватывает системный буфер обмена?

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

(Системный буфер обмена — это область памяти, предоставляемая операционной системой для временного хранения тех или иных данных).

Доступ к буферу обмена открыт для любого приложение на компьютере. По этой причине всё, что вы копируете и вставляете, может быть спокойно перехвачено другими программами. Существует много легального софта получающего данные с системного буфера обмена, который вы могли поставить самостоятельно и не знали об этом. Например, тестовый редактор Word или Excel в открытом состоянии перехватывает копирования в свою внутреннею память и это он делает, открыто для вашего удобства. Не думаю, что нам стоит перечислять сейчас или говорить про многие другие приложения с подобным функционалом, просто поверьте их очень много и получение доступа и данных с системного буфера обмена это специализированное легальное действие, на которое не реагируют (в общем понимание) классические программы защит. Возможно, у вас на компьютере стоят приложения, которыми вы давно пользуетесь и не знаете, что они дублирует данные копирования у себя. И хорошо, если для вашего удобства, а не для своего разработчика или злоумышленника. В этой статье с помощью антишпиона Mask S.W.B Pro мы покажем, как выявить в системе приложения, которые получают или перехватывают данные с системного буфера обмена, а так же расскажем, как безопасно копировать и вставлять информацию, о которой ни кто кроме вас не должен знать.

В главном окне программы Mask S.W.B Pro, нажмите правой кнопкой мыши на верхнею рамку окна и в открывшимся контекстном меню выберите пункт "Монитор буфера обмена".

Окно монитора состоит из двух динамичных списков, в которых можно увидеть столбцы: "№ (порядковый) " – в списке, "Имя файла" – программы, "ID" – уникальный номер процесса в операционной системе, "Время" – в которое был послан запрос, "Адрес" – по которому находится программа.

В левом поле отображается приложение, которое стоит первым в очереди для просмотра буфера обмена в случае изменения его данных. Система создаёт очередь по запросам от приложений и в момент нового копирования, информация об этом распространяется по всем участникам последовательно. Чтобы увидеть следующий процесс, стоящий в очереди на просмотр буфера обмена, нужно завершить предыдущий, используя контекстное меню списка. Таким образом, можно посмотреть все приложения, желающие отслеживать изменения буфера обмена. На картинки ниже мы видим, что после завершения первого процесса punto.exe от программы Punto Switcher, стоящего в очереди на получения данных с буфера обмена, появился другой процесс VirtualBox.exe от установленного в системе продукта виртуализации.

В правом поле демонстрируются приложения, работающие с буфером обмена в текущий момент или удерживающие его открытым. Через этот список мы будем отслеживать приложения, которые могут не запрашивать информацию у системы об изменении буфера обмена и не становиться в очередь, где их легко обнаружить, а проверяют данные буфера обмена постоянно, через определённый промежуток времени. Такие программы обнаружить намного сложнее и мы для этого будем использовать метод провокационного копирования и вставки. Что мы знаем точно, если на компьютере, есть программа, которая забирает данные копирования к себе, то она по любому должна открыть системный буфер обмена, продублировать информацию и потом закрыть системный буфер обмена. Обычно эта операция проходит мгновенно и отследить её практически не возможно, но именно в этот момент мы и будем отлавливать интересующий нас объект. Если скопировать большой объём текстовой информации, на копирование которого, нужно будет затратить порядка 2 секунд и больше, то значит и перехватчик должен будет затрачивать это же время, и мы сможем отследить в этот момент, какая программа удерживает буфер обмена открытым. В маскировщике через контекстное меню можно выбрать скорость обработки списков окна, чем мощней компьютер, тем выше должна быть установлена скорость. Если выбрать скоростной режим “break v 0.1s” поиск остановится сразу, после обнаружения приложения удерживающего буфер обмена открытым и пункт списка при этом будет подсвечен красным цветом.

Мы создали в программе “Блокнот” большое количество текстовых строк и при открытом мониторе буфера обмена, в режиме ускоренной обработки скопировали эти данные.

Ниже на картинке в правом поле мы видим, что после провокационного копирования, вместе с текстовым редактором данные получили ещё три программы. Процесс punto.exe от программы Punto Switcher, MPK.exe от шпиона Мipko, который мы установили специально для теста и неожиданно обнаружили, что процесс NokiaSuite.exe от приложения обмена данными с телефонами NOKIA, которое было установлено несколько лет назад, тоже за чем-то копирует данные системного буфера обмена.

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