Разное

Буфер обмена как найти – «Как открыть буфер обмена на компьютере?» – Яндекс.Знатоки

03.04.2017

Содержание

Где находится буфер обмена в телефоне, как его найти

Пользователи мобильных аппаратов часто спрашивают, где находится буфер обмена в телефоне, и как его правильно чистить. Такой интерес легко объяснить. Сегодня все смартфоны и планшеты с Андроид обладают почти таким же функционалом, как и ПК. Одна из опций — возможность пользоваться буфером обмена, а именно виртуальным пространством, которое находится внутри ОЗУ смартфона и предназначено для хранения, а также последующего перемещения файлов. При этом информация в этой части памяти не накапливается. Она автоматически удаляется при поступлении новой «порции» данных.

Что такое буфер обмена в телефоне

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

Буфер обмена — это:

  1. Временное место для хранения информации, предоставляемое ПО и позволяющее переносить или копировать данные между приложениями посредством копирования, вырезания и вставки.
  2. Определенная секция в ОЗУ телефона или планшета, где находится текстовая информация. Наличие этого места позволяет человеку вырезать часть текста из СМС, поисковой строки или документа, а после этого вставить их в другие файлы.

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

Где находится буфер обмена в телефоне

Выше мы кратко ответили на вопрос, где в смартфоне находится буфер обмена. Место расположения этого виртуального пространства — ОЗУ мобильного устройства. При этом физического файла, который бы характеризовал это пространство, не существует. Иными словами, нельзя просто так войти в телефон и посмотреть, что находится в ОЗУ. Вся работа проводится на программном уровне.

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

  • один или более раз переместить текст в другой документе или SMS;
  • копировать или отправить файл в новую папку;
  • поместить данные возле оригинала.

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

Как посмотреть и удалить файлы

Существует несколько способов найти буфер обмена на Андроиде и удалить оттуда файлы. Подробно рассмотрим каждый из методов.

Способ №1:

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

Если нет ссылки с корзиной, нажмите на текстовый блок и удерживайте его около 1-2 секунд. В этом случае должны появиться красные крестики. Чтобы убрать лишние элементы, жмите крестики возле файлов, которые нужно убрать.

Этот метод хорош и позволяет очистить буфер обмена на Андроид. Минус в том, что такой метод работает не для всех версий Android.

Способ №2 (с рут-правами):

  1. Откройте менеджер файлов.
  2. Войдите в каталог Андроид.
  3. Найдите папку data/clipboard. Здесь можно посмотреть буфер обмена на Андроиде.
  4. Почистите указанный документ от лишних файлов.
  5. Войдите в Настройки, а далее Приложения.
  6. Перейдите во вкладку Все.
  7. Жмите на кнопки Остановить и Очистить.
  8. Перезапустите телефон.

Для получения прав Суперпользователя необходимо скачать программу King Android Root с Плей Маркета. Рутирование смартфона с помощью этой программы требует подключения компьютера и занимает не больше 7-10 минут.

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

Сторонние приложения для работы с буфером обмена

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

  • Менеджер буфера обмена — надежная программа размером 2,9 Мб с 4,3 тысячами отзывами. Это простой и быстрый софт, который хранит историю и дает доступ к заметкам пользователя. К полезным функциям стоит отнести наличие категории заметок, вставку заметок из клавиатуры, просмотр, копирование и автоматическую очистку. С помощью софта буфер обмена в телефоне находится всегда перед глазами и может быть удален в любой момент. Из дополнительных функций стоит выделить подтверждение перед сохранением, сортировку, объединение заметок, очистку категорий и т. д. Программа постоянно обновляется, добавляются новые опции.

  • Clipboard Action & Manager — софт, способный сэкономить много времени пользователям. Теперь для копирования, вставки и изучения информации в буфере обмена телефона требуется несколько секунд. Преимущества программы — отсутствие рекламы, фреймов или сборов пожертвований. При желании можно перейти к старым записям буфера обмена и управлять ими. Дополнительные функции — возможность конвертации средств с помощью Гугл, электронная почта, поиск скопированного текста и многое другое. С помощью ПО вы всегда знаете, где находится скопированная информация, и как ее посмотреть. Программа имеет много полезных настроек.

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

  • My Clipboard — софт, созданный для владельцев телефона на основании их отзывов и комментариев. Программа находится в свободном доступе в Плей Маркете и доступна для скачивания. Задача приложения состоит в сохранении всей копируемой информации с возможностью получения доступа ко всем сохраненным файлам. Владелец телефона может копировать, вставлять, просматривать и редактировать информацию. Главные возможности ПО — быстрый доступ, возможность поиска по содержимому, отсутствие ограничений на число меток, импорт и экспорт данных в файл. Самое главное, что буфер обмена всегда находится рядом (в телефоне) и может быть извлечен путем перехода в программу.

  • Clip Stack — надежный буфер обмена для телефона без рекламы и оплаты. Особенности программы — легкое копирование и возможность делиться сведениями, работа на любом телефоне с Андроид, удобное уведомление, использование разрешений и многое другое. Судя по отзывам, программа надежно хранит полезную информацию и открывает к ней доступ в любой момент.

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

Трудности в работе

В завершение отметим ситуацию, когда буфер обмена вдруг отказывается работать на телефоне. К примеру, кнопки копирования и вставки не появляются. В таком случае придется очистить ОЗУ путем получения рут-прав. Если этот метод не помог, можно сбросить телефон до заводских настроек. Этот пункт находится в разделе Настройки, далее Система и Сброс. Учтите, что в случае отката к заводским данным удаляются все приложения и другие личные данные. Вот почему этот метод желательно использовать только в крайнем случае.

Итоги

Теперь вы знаете, где искать буфер обмена в телефоне, что это и как работает. С этой информацией можно на 100% использовать его возможности. Сразу отметим, что в стандартной ОЗУ способов управления недостаточно, поэтому лучше поставить приложение и максимально расширить функционал смартфона.

4gltee.ru

Как посмотреть содержимое буфера обмена Windows

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

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

В любой ОС Windows запись в буфер обмена производится пунктом «копировать» контекстного меню (сочетание клавиш Ctrl и C), а запись из него командой «вставить» (сочетание клавиш Ctrl и V). Также можно «вырезать» блок банных (Ctrl+X), что означает записать с удалением из того места, в котором он сейчас находится. Иногда при работе с тем или иным приложением система выдаёт сообщение «объём информации слишком велик для помещения в clipboard». Это значит, компьютеру не хватает места для записи, так происходит, обычно, при работе с крупным изображением.

Просмотреть содержимое буфера обмена Windows можно стандартными средствами, предусмотренными в системе, и при помощи специальных утилит.

Обращение к буферу обмена стандартными средствами Windows

Полноценная программа есть только в Windows XP. Существует служебная утилита, которая находится в папке C:/windows/system32.

Обратиться к ней можно через команду «Выполнить»:

  1. Зайдите в меню «Пуск», «Программы», «Стандартные», «Выполнить».
  2. Введите в строке clipbrd.exe.
  3. Откроется окно, в котором будет показано, что находится в буфере в настоящее время.

В Windows 7 также существует такая программа, называется она clip.exe.

Но открыть её пользователю невозможно. Есть способ очистить буфер обмена специальной командой и даже создать для неё ярлык запуска. А можно попробовать перенести служебную программу clipbrd.exe из старой операционной системы.

  1. Запишите файл с компьютера со старой операционной системой. Либо возьмите установочный диск Windows XP, откройте его, нужный файл находится в папке «I386».
  2. Сохраните на компьютере с Windows 7, затем распакуйте каким-нибудь архиватором, например, WinRar.
  3. После извлечения, запускаете файл clipbrd.exe и получаете работоспособную программу, позволяющую посмотреть буфер обмена windows

Распаковать файл можно также при помощи командной строки, для этого введите следующий текст:

cd desktop

expand clipbrd.ex_ clipbrd.exe

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

Чтобы только очистить буфер обмена, можно создать ярлык для специальной команды:

  1. Щёлкните правой кнопкой в любом свободном месте рабочего стола.
  2. Выберите команду «Создать ярлык».
  3. В строке введите следующее: cmd /c «echooff | clip».
  4. Напечатайте имя для команды, какое вам нравится.

Если хотите проверить работоспособность, скопируйте что-то, например, текст в Word, вставьте, чтобы убедиться, что буфер не пустой, а затем запустите созданную команду. На миг появится чёрное окошко. Когда оно исчезнет, нажмите в Word команду «вставить», и ничего не произойдёт, потому что информация из памяти стёрта.

Но есть и более простой способ удалить из памяти большой фрагмент. Просто скопируйте что-то очень маленькое, например, одну букву, и программа заменит большой объём новыми данными (этой буквой).

Из этого следует основной недостаток использования стандартной программы Windows для того, чтобы посмотреть содержимое буфера обмена: в память записывается лишь последняя информация. После копирования предыдущая просто заменяется. И вставить вы можете только последний фрагмент.

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

Панель управления буфером находится в верхнем левом углу на вкладке «Главная». Под значком «Вставить» есть строка со стрелочкой, нажмите её и откроется дополнительное окно, где можно посмотреть скопированные данные и выбрать нужные для вставки.

Специальные программы управления буфером обмена

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

Такими приложениями являются:

  • ClipDiary;
  • CLCL;
  • ClipboardViewer;
  • AAP Assistant и многие другие.

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

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

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

AAP Assistant— мощная программа для работы с текстовыми данными буфера: сохраняет историю, использует горячие клавиши, анализирует и обрабатывает текст перед вставкой, возможность сетевого доступа (через интернет), напоминания, конвертирование единиц измерений, быстрая смена раскладки клавиатуры и многие другие полезные функции.

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

nastroyvse.ru

что это и где находится

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

Например, я выделил и скопировал кусок текста. Он невидим и хранится в буфере обмена. И будет там находиться до тех пор, пока я его не вставлю. Или пока не скопирую что-то другое.

 

Что такое буфер обмена

Допустим, у меня на Рабочем столе есть папка, которую нужно переписать на флешку. Значит, щелкаю по ней правой кнопкой мыши и выбираю пункт «Копировать».

Вроде как ничего не изменилось, всё осталось по-прежнему. Но эта папка сохранилась в невидимой памяти компьютера – в буфере обмена. И сейчас компьютер держит ее в «уме».

Теперь я открываю свою флешку и вставляю в нее скопированную папку: щелкаю правой кнопкой мыши по пустому месту и выбираю «Вставить».

Папка с Рабочего стола добавляется на флешку. Получается, только что я вытащил ее из буфера обмена.

Вот так это и работает. Мы копируем какую-то информацию и тем самым добавляем ее в буфер обмена, а потом вставляем (вытаскиваем оттуда).

Как долго там хранится информация

Хранится она там до тех пор, пока не будет заменена новой. Или до выключения (перезагрузки) компьютера. Объясню на примере.

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

Кстати, об этом у меня на сайте есть отдельный урок.

Значит, я выделяю нужный мне кусочек текста и копирую его.

Как вы уже знаете, он сразу же попадает в буфер обмена и будет там находиться до тех пор, пока я его куда-то не вставлю. Но, допустим, я отвлёкся на другую статью. И в ней нахожу что-то, что тоже хотел бы сохранить на свой компьютер. Так вот если я выделю и скопирую эту новую часть, то тот текст, которой был скопирован до этого, сотрется. Он заменится новым фрагментом. И при вставке добавится только новый текст.

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

Буфер обмена – временное и очень ненадежное хранилище. Если уж вы скопировали какую-то информацию, то не забудьте ее сразу же вставить.

Не зря под понятием «копирование» подразумевают и вставку тоже. То есть имеют в виду не одно, а сразу два действия. Ведь при копировании данные попадают в буфер – промежуточное место – откуда должны быть непременно вставлены. Иначе они не сохранятся.

 

Где находится буфер обмена

У него есть вполне реальное место в компьютере: Локальный диск C – Windows – system32 – файл clip.exe

Но в системе Windows 7, 8 и 10 этот файл не открывается. То есть посмотреть, что там находится, невозможно. А вот в Windows XP он называется clipbrd.exe и открыть его таки можно. И если предварительно скопировать какой-нибудь текст, то он будет внутри этого файла.

Это системный файл. Его нельзя удалить, переместить или переименовать.

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

Если вы копируете текстовые фрагменты или небольшие файлы, тогда особого смысла в его очистке нет. Однако при копировании больших файлов (например, фильмов) компьютер может начать притормаживать. Ведь вся информация попадает во временное хранилище, которое находится на системном Локальном диске. И даже после вставки она по-прежнему будет «сидеть» в памяти.

Но это легко поправить: нужно просто скопировать какой-нибудь небольшой файл (например, фотографию или документ). Тогда все, что до этого было в буфере, сотрется и вместо него добавится этот новый файл.

Программа для работы с буфером обмена

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

Подобных программ существует несколько, но лично я для этой цели использую бесплатную Punto Switcher от Яндекса. Ее основная задача – автоматически менять раскладку клавиатуру, когда пользователь об этом забыл.

Например, я печатаю какой-то текст и вдруг замечаю, что забыл поменять язык на русский — всё набирается английскими буквами. Вот Punto Switcher не допускает таких ситуаций. Программа сама автоматически меняет раскладку и «переводит» текст.

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

 

Установка Punto Switcher

Для начала, проверьте, может, она уже есть на компьютере. Для этого посмотрите на панель задач – в нижнюю правую часть экрана. Если вместе со значком алфавита (или вместо него) есть вот такая иконка, значит, программа у вас уже установлена.

Иконка есть? Отлично! Тогда щелкните по ней правой кнопкой мышки, чтобы точно убедиться, что это именно Punto Switcher.

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

После установки на панели задач (справа) появится вот такая иконка:

Или такая, если выбран английский алфавит:

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

Работа с буфером обмена в Punto Switcher

Программа может сохранять до 30 текстовых фрагментов, к которым у вас всегда будет доступ через историю. Также Punto Switcher позволяет транслитерировать фрагменты в буфере обмена и сохранять его даже после перезагрузки системы. Но для всего этого необходимо сделать кое-какие настройки.

1. Открываем окно программы двойным щелчком левой кнопкой мыши по значку в трее. Во вкладке «Общие» выбираем пункт «Дополнительные».

2. Ставим галочку там, где «Следить за буфером обмена», и еще на «Сохранять историю буфера обмена после перезагрузки Windows» (если это, конечно, вам нужно). После чего нажимаем «ОК».

Теперь текстовые фрагменты, которые вы копируете, будут сохраняться в программе. И любой из них можно будет оттуда достать. Для этого нужно нажать правую кнопку мыши по значку Punto Switcher, после чего выбрать пункт «Буфер обмена» и «Посмотреть историю».

Щелкаем по тому кусочку, который нужен, и он копируется. После чего его останется только вставить.

P.S.

Копирование и вставку можно делать не только через правую кнопку мыши, но и при помощи сочетания клавиш клавиатуры Ctrl+С и Ctrl+V. Это быстро и удобно – нужно просто привыкнуть.

Принцип следующий: выделяем то, что нужно скопировать, зажимаем клавишу Ctrl и затем нажимаем на клавишу С. Переходим туда, куда эту информацию нужно вставить, зажимаем Ctrl и V (русскую М).

 

www.neumeka.ru

Что такое буфер обмена в Windows 7, 8, 10, как посмотреть и очистить, где находится

Буфером обмена называется место промежуточного хранения данных при копировании их между различными приложениями или частями одного. Обычно он предоставляется операционной системой, но у отдельных программ может быть собственный буфер, доступный только для них. Стандартными составляющими операций являются функции: копировать (Ctrl+C), вырезать (Ctrl+X) и вставить (Ctrl+V), то есть перенос информации с места на место.

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

Где находится буфер обмена и как его посмотреть

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

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

Просмотреть, что в нём содержится на данный момент можно с помощью специальных утилит. В Windows XP – «Папки обмена» («Clipboard Viewer») – запускается с помощью Пуск / Выполнить вносим туда «clipbrd.exe».

Здесь можно просматривать информацию, которая была скопирована в виде текста (RTF) или изображения в формате BMP (а также WMF и EMF).

В более поздних версиях (7, 8, 10) этой программы нет. Не беда, есть специальные программы для работы с буфером, о которых будет рассказано чуть ниже.

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

Процедура очистки в различных версиях Windows несколько различается.

В Windows XP

В XP версии легко очистить буфер с помощью вышеупомянутой утилиты clipbook viewer. Есть специальная кнопка очистки в виде крестика – выделяем содержимое и кликаем по ней.

Очистка через командную строку для Windows 7, 8, 10

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

После чего в окне написать команду:

cmd /c «echo off | clip»

С произвольным названием.

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

Для удобства можно закрепить его на панели задач.

Программы для работы с буфером

Рассмотрим 3 наиболее популярных для этих целей программы.

Punto Switcher и CLCL

Программа от Яндекса, задача которой автоматическое переключения раскладки.

Требуемая функция включается установлением галочек на вкладке Дополнительных настроек.

Минусом этой программы является, то что в буфер можно скопировать только текст.

Вторая программа называется CLCL.

Она уже может хранить не только текст, но и изображения.

Использование Clipdiary

Следующая программа Clipdiary.

Отличается удобством и множеством настроек.

Читайте также:

composs.ru

Где находится буфер обмена на компьютере, телефоне

Каждому пользователю ПК знакома комбинация клавиш Ctrl-C – Ctrl-V. Копировать-вставить.

Она позволяет быстро переносить большие объемы информации из одного места в другой без нужды создавать новые файлы или документы.

Благодаря этому работа за ПК существенно упрощается – тексты не надо перепечатывать, а файлы искать и скачивать заново.

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

Что это такое

Что такое буфер обмена? Таким термином обозначают особую программу, которая перманентно открыта в системе в фоновом режиме.

Ее основная функция – перенос информации в отдельный участок памяти на какое-то время.

Стоит учесть, что если пользователь снова копирует другие данные – то те, что были до этого, автоматически стираются. То же самое происходит при перезагрузке или выключении ПК.

Существуют программы, позволяющие расширить возможности родного временного хранилища данных.

Например, Ditto, который позволяет просматривать историю скопированных данных и взаимодействовать с базой данный в более комфортном виде.

Стоит сказать и о том, что временное хранилище данных имеется, помимо ПК, еще и в портативных устройствах – телефонах, мобильных компьютерах.

Принцип его действия в ОС Андроид или iOS абсолютно такой же, как и в ноутбуках и стационарных ПК.

Где находится функция буферизации

На компьютере

Как и любые системные данные, файл временного хранилища данных расположен на диске системы в папке system32.

В ней надо найти файл с именем clipbrd.exe, нажав на который откроется программа буфера обмена.

Но гораздо проще запустить его из меню пуск, при помощи кнопки «Выполнить». В появившемся окне надо ввести название файла и далее также откроется нужное окно.

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

Этот способ работает только для ПК с операционной системой Windows XP.

На Windows 7 хранилище данных по умолчанию не доступно, и открыть его нельзя. В системе он находится под именем файла clip.exe.

Для доступа к нему нужны сторонние вспомогательные программы – например, Clipboard Viewer или Clipslim.

Утилиты позволят легко манипулировать и взаимодействовать с ним. То же самое применимо и к Windows 8.

На телефоне

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

Однако зайти в него невозможно, можно только просмотреть его историю.

1. На новых моделях телефона временный склад данных имеет возможность сохранять не один копируемый текст.

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

Ткните на нее, и на экране откроется список помещенных туда за последнее время фраз.

2. Кроме того, можно воспользоваться мобильным приложением Clipboard Mamager, с помощью которого можно также увидеть историю помещенных туда фраз.

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

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

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

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

В таком случае единственный выход – это очистить временное хранилище информации.

На компьютере

1. По сути, самый верный метод почистить хранилище данных – это перезагрузить или выключить компьютер. Тогда все данные из оперативной памяти сотрутся автоматически.

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

2. В операционной системе Windows XP можно зайти в саму утилиту, управляющую буфером обмена, и там нажать на кнопку «Очистить». Окно станет белым и чистым, а все данные из ОЗУ сотрется.

3. Временный склад информации очищается, если просто скопировать одну любую букву. Прошлая информация удалится, а новая будет весить не так много – устройство перестанет тормозить.

4. Опять же – можно использовать сторонние дополнительные утилиты. В Clipboard Viewer имеется функция, которая позволяет очистить временное хранилище данных.

На телефоне

Схожие проблемы с тормозами встречаются и на телефонах. В данном случае возможности по очистке временного хранилища у них поскромнее.

1. Перезагрузка. Аналогично первому случаю, буфер полностью очистится вместе и со всей остальной информацией. Это поможет, если телефон внезапно завис и не может работать.

2. Копирование одной буквы. Хранилище информации сотрет большое количество данных и заменит их меньшим.

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

3. Использование сторонних программ. Мобильное приложение Clipboard Manager позволяет взаимодействовать с буфером обмена на устройстве Андроид, в том числе и очищать его.

Помимо этого, история сохранений будет сохраняться, а значит ее можно будет достать позднее.

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

Эта, казалось бы, небольшая программа, делает работу на ПК более удобной и быстрой, помогая решать многие проблемы работы с информацией.

А какие утилиты для работы с буфером обмена используете вы?

seoslim.ru

что это и где он находится в компьютере

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

Что такое буфер обмена

Основные комбинации клавиш для работы с буфером обмена.

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

Буфер обмена используется для копирования или перемещения данных. Например, когда вы копируете текст, он помещается в буфер обмена и хранится там до тех пор, пока вы не скопируете что-то другое, что перезапишет предыдущий скопированный текст. Это работает точно также и с другими типами данных, например, с изображениями. При вставке текста, или другого скопированного объекта, он извлекается из буфера обмена и помещается в ту точку, куда вы вставляете данные.

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

При необходимости функциональность буфера обмена можно расширить при помощи сторонних программ (диспетчеры буфера обмена). Такие программы позволяют:

  • Создавать несколько буферов обмена и использовать их по отдельности. При этом в момент копирования или вставки нужно указать, какой из буферов нужно использовать. Это позволяет хранить сразу несколько разных объектов.
  • Просматривать содержимое всех созданных буферов обмена, индексировать данные и выполнять поиск.
  • Выполнять слияние, разделение или редактирование данных в буферах обмена.

Для Windows существуют следующие диспетчеры буфера обмена: Ditto, CLCL, ClipX, Clipboard Help+Spell, ArsClip, Free Clipboard Viewer, PasteCopy.NET, Clipdiary, Comfort Clipboard, lipboard Master, Outertech Clipboard History, FastPaste.

Где находится буфер обмена

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

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

Поэтому не стоит рассчитывать на буфер обмена как на надежное хранилище данных. Поскольку при выключении компьютера (по любой причине) содержимое буфера обмена будет полностью удалено.

Как пользоваться буфером обмена

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

Также вы можете использовать комбинации клавиш. Для копирования данных существуют комбинации Ctrl-C и Ctrl-Ins, для вырезания данных Ctrl-X и Shift-Del, и для вставки данных Ctrl-V и Shift-Ins.


Посмотрите также

comp-security.net

Как работает буфер обмена в Windows / Habr

Недавно у меня появилась возможность выполнить отладку буфера обмена в Windows, и я решил, что хорошо бы поделиться информацией, которую удалось узнать. Буфер обмена — это тот компонент Windows, который многие из нас используют десятки (сотни?) раз в день, особо не размышляя об этом. Прежде чем взяться за это дело, я даже никогда не задумывался, как всё устроено. Как выяснилось, там столько интересного, что вы даже не можете себе представить. Сначала опишу, как приложения хранят разные типы данных в буфере обмена и как извлекают их оттуда, а затем — как приложения могут «прицепиться» к буферу и отслеживать изменения в нём. В обоих случае вы увидите отладочные записи, которые показывают, как получить доступ к данным из отладчика.

Начнём с обсуждения форматов буфера обмена. Такие форматы используются для описания, какие типы данные можно поместить в буфер. Там есть некоторое количество предопределённых стандартных форматов, которые может использовать приложение, вроде битового массива, текста ANSI, текста в Юникоде и TIFF. Windows также позволяет приложению установить собственный формат. Например, текстовый процессор может зарегистрировать формат, включающий в себя текст, форматирование и картинки. Конечно, это ведёт к определённой проблеме: что произойдёт, если вы скопируете данные из текстового редактора и вставите их в «Блокнот», который не понимает всего этого форматирования и не отображает картинки?

Выход — разрешить одновременное хранение данных в буфере обмена в нескольких форматах. Когда я раньше думал о буфере обмена, то представлял, что там хранится единственный объект («мой текст» или «моя картинка»), но на самом деле мои данные хранятся в буфере в разных формах. Программа, которая берёт информацию из буфера, получает её в том формате, который она может использовать.

Как же данные появляются в буфере обмена? Очень просто, приложение сначала объявляет о праве собственности на буфер обмена через функцию OpenClipboard. После этого программа может очистить буфер обмена командой EmptyClipboard и, наконец, поместить туда свои данные командой SetClipboardData. SetClipboardData принимает два параметра. Первый — это идентификатор одного из форматов буфера обмена, которые мы упоминали выше. Второй — дескриптор сегмента в памяти, который содержит данные в этом формате. Приложение может неоднократно вызывать команду SetClipboardData для каждого из форматов, какие она хочет поместить в буфер, от лучшего к худшему (поскольку то приложение, куда будут вставляться данные, выберет первый подходящий формат из списка). Чтобы облегчить жизнь разработчику, Windows автоматически обеспечивает конвертацию некоторых типов форматов для буфера обмена. По окончании процесса программа вызывает CloseClipboard.

Когда пользователь нажимает кнопку «Вставить», целевое приложение вызывает OpenClipboard и одну из следующих функций для определени я доступных форматов данных: IsClipboardFormatAvailable, GetPriorityClipboardFormat или EnumClipboardFormats. Если оно находит подходящий формат, то тогда вызывает GetClipboardData с идентификатором нужного формата в качестве параметра, чтобы получить данные. В конце приложение использует команду CloseClipboard для закрытия буфера.

Теперь взглянем, как с помощью отладчика определить, какие данные записаны в буфер обмена. (Заметьте, что все мои записи сделаны в системе Win7/2008 R2 — так что на других версиях ОС они могут выглядеть несколько иначе). Поскольку буфер является частью Win32k.sys, вам понадобится отладчик ядра. Я люблю использовать в качестве контрольной точки win32k!InternalSetClipboardData+0xe4. В таком смещении хорошо то, что оно находится за регистром RDI, заполненным данными из SetClipboardData в структуре, известной как tagCLIP.

kd> u win32k!InternalSetClipboardData+0xe4-c L5
win32k!InternalSetClipboardData+0xd8:
fffff960`0011e278 894360          mov     dword ptr [rbx+60h],eax
fffff960`0011e27b 8937            mov     dword ptr [rdi],esi
fffff960`0011e27d 4c896708        mov     qword ptr [rdi+8],r12
fffff960`0011e281 896f10          mov     dword ptr [rdi+10h],ebp
fffff960`0011e284 ff15667e1900    call    qword ptr[win32k!_imp_PsGetCurrentProcessWin32Process (fffff960`002b60f0)]
kd> dt win32k!tagCLIP
   +0x000 fmt              : Uint4B
   +0x008 hData            : Ptr64 Void
   +0x010fGlobalHandle     : Int4B

Вот как выглядит вызов к SetClipboardData от «Блокнота»:
kd> k
Child-SP          RetAddr           Call Site
fffff880`0513a940 fffff960`0011e14f win32k!InternalSetClipboardData+0xe4
fffff880`0513ab90 fffff960`000e9312 win32k!SetClipboardData+0x57
fffff880`0513abd0 fffff800`01482ed3 win32k!NtUserSetClipboardData+0x9e
fffff880`0513ac20 00000000`7792e30ant!KiSystemServiceCopyEnd+0x13
00000000`001dfad8 00000000`7792e494 USER32!ZwUserSetClipboardData+0xa
00000000`001dfae0 000007fe`fc5b892b USER32!SetClipboardData+0xdf
00000000`001dfb20 000007fe`fc5ba625 COMCTL32!Edit_Copy+0xdf
00000000`001dfb60 00000000`77929bd1 COMCTL32!Edit_WndProc+0xec9
00000000`001dfc00 00000000`779298da USER32!UserCallWinProcCheckWow+0x1ad
00000000`001dfcc0 00000000`ff5110bc USER32!DispatchMessageWorker+0x3b5
00000000`001dfd40 00000000`ff51133c notepad!WinMain+0x16f
00000000`001dfdc0 00000000`77a2652d notepad!DisplayNonGenuineDlgWorker+0x2da
00000000`001dfe80 00000000`77b5c521 kernel32!BaseThreadInitThunk+0xd
00000000`001dfeb0 00000000`00000000ntdll!RtlUserThreadStart+0x1d

Итак, теперь мы можем просмотреть содержимое RDI как tagCLIP и увидеть, что записано в буфер:
kd> dt win32k!tagCLIP @rdi
   +0x000 fmt              : 0xd
   +0x008 hData            : 0x00000000`00270235 Void
   +0x010fGlobalHandle     : 0n1

Fmt — это формат для буфера обмена. 0Xd — это число 13, что соответствует тексту в формате Юникода. Однако мы не можем просто запустить du по значению hData, потому что это дескриптор, а не прямой указатель на данные. Так что нужно поискать его в глобальной структуре win32k — gSharedInfo:
kd> ?win32k!gSharedInfo
Evaluate expression: -7284261440224 = fffff960`002f3520
kd> dt win32k!tagSHAREDINFO fffff960`002f3520
   +0x000 psi              : 0xfffff900`c0980a70 tagSERVERINFO
   +0x008 aheList          : 0xfffff900`c0800000 _HANDLEENTRY
   +0x010 HeEntrySize      : 0x18
   +0x018 pDispInfo        : 0xfffff900`c0981e50 tagDISPLAYINFO
   +0x020ulSharedDelta     : 0
   +0x028 awmControl       : [31] _WNDMSG
   +0x218DefWindowMsgs     : _WNDMSG
   +0x228DefWindowSpecMsgs : _WNDMSG

aheList в gSharedInfo содержит массив с дескрипторами, и последние два байта hData, умноженные на размер записи дескриптора, показывают адрес записи нашего дескриптора:
kd> ?0x00000000`00270235 & FFFF
Evaluate expression: 565 = 00000000`00000235
kd> ??sizeof(win32k!_HANDLEENTRY)
unsigned int64 0x18
kd> ? 0xfffff900`c0800000 + (0x235*0x18)
Evaluate expression: -7693351766792 = fffff900`c08034f8
kd> dt win32k!_HANDLEENTRY fffff900`c08034f8
   +0x000 phead            : 0xfffff900`c0de0fb0 _HEAD
   +0x008 pOwner           : (null)
   +0x010 bType            : 0x6 ''
   +0x011 bFlags           : 0 ''
   +0x012 wUniq            : 0x27

Если посмотреть phead со смещением 14, то мы получим наши данные (это смещение может отличаться на разных платформах):
kd> du fffff900`c0de0fb0 + 0x14
fffff900`c0de0fc4 "Hi NTDebugging readers!"

Представим другой сценарий. Я скопировал какой-то текст из Wordpad, и команда SetClipboardData отработала определённое количество раз, чтобы разместить данные в разных форматах. Запись в формате Юникода выглядит так::
Breakpoint 0 hit
win32k!InternalSetClipboardData+0xe4:
fffff960`0011e284 ff15667e1900   call    qword ptr[win32k!_imp_PsGetCurrentProcessWin32Process (fffff960`002b60f0)]
kd> dt win32k!tagCLIP @rdi
   +0x000 fmt              : 0xd
   +0x008 hData            : (null)
   +0x010fGlobalHandle    : 0n0

hData равен нулю! Почему так? Оказывается, буфер обмена позволяет приложению передавать нуль в качестве параметра SetClipboardData для определённого формата. Это означает, что приложение способно предоставить данные в данном формате, но сделает это позже, в случае необходимости. Если я захочу вставить текст в «Блокнот», для чего в буфере должен быть текст в Юникоде, Windows отправит сообщение WM_RENDERFORMAT в окно WordPad, и тогда WordPad предоставит данные в новом формате. Конечно, если приложение закрывается до того, как предоставило данные во всех форматах, Windows понадобятся все форматы. В этом случае Windows отправит сообщение WM_RENDERALLFORMATS, чтобы другие приложения могли использовать данные из буфера обмена после закрытия материнского приложения.

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

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

Функциональность Clipboard Viewer появилась ещё в версии Windows 2000, если не раньше. Принцип работы довольно простой: приложение, которое заинтересовано в получении уведомлений об изменении в буфере, вызывает SetClipboardViewer и передаёт дескриптор своего окна. Windows хранит этот дескриптор в структуре win32k, и каждый раз при изменении буфера обмена Windows отправляет сообщение WM_DRAWCLIPBOARD в зарегистрированное окно.

Конечно, зарегистрироваться для просмотра буфера могут несколько окон — как Windows справится с этим? Ну, если приложение вызывает SetClipboardViewer, а другое окно раньше уже зарегистрировалось для просмотра буфера обмена, то Windows возвращает новому окну значение дескриптора предыдущего окна. И теперь новое окно, следящее за буфером, обязано вызвать SendMessage каждый раз, когда получает WM_DRAWCLIPBOARD, и уведомить об изменении буфера следующее окно в цепочке тех, кто следит за буфером. Каждое из окон, следящих за буфером, также должно обрабатывать сообщения WM_CHANGECBCHAIN. Такие сообщения уведомляют все остальные окна об удалении одного звена в цепочке и сообщают, какое звено становится следующим в очереди. Это позволяет сохранить цепочку.

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

Чтобы справиться с такими проблемами, в Windows Vista добавили механизм прослушивания формата буфера обмена — Clipboard Format Listener. Он работает во многом так же, как просмотр буфера обмена, за исключением того, что Windows сама ведёт список приложений, которые прослушивают буфер, а не полагается на добропорядочность приложений, которые должны сохранять цепочку.

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

Мы рассмотрели, как зарегистрировать просмотр/прослушивание буфера обмена. Теперь посмотрим, как с помощью отладчика определить, какие программы участвуют в этих процессах. Сначала нужно идентифицировать процесс в сессии, где мы хотим проверить мониторинг буфера обмена. Это может быть любой процесс win32 в этой сессии — он нужен нам просто для того, чтобы найти указатель на Window Station. В этом случае я бы использовал окно «Блокнота», как и раньше:

kd> !process 0 0 notepad.exe
PROCESS fffff980366ecb30
    SessionId: 1  Cid: 0374   Peb: 7fffffd8000  ParentCid: 0814
    DirBase: 1867e000  ObjectTable: fffff9803d28ef90  HandleCount: 52.
    Image: notepad.exe

Если вы делаете это в процессе отладки ядра, то понадобится интерактивно сменить контекст (используя .process /I<address>, затем нажать g и подождать, пока отладчик прорвётся назад). Теперь запускаем DT на адрес процесса как _EPROCESS, и смотрим на поле Win32Process:
kd> dt _EPROCESS fffff980366ecb30 Win32Process
nt!_EPROCESS
   +0x258 Win32Process : 0xfffff900`c18c0ce0 Void

Далее посмотрим адрес Win32Process как win32k!tagPROCESSINFO и узнаем значение rpwinsta:
kd> dt win32k!tagPROCESSINFO 0xfffff900`c18c0ce0 rpwinsta
   +0x258 rpwinsta : 0xfffff980`0be2af60 tagWINDOWSTATION

Это наша Window Station. Сливаем содержимое через dt:
kd> dt 0xfffff980`0be2af60 tagWINDOWSTATION
win32k!tagWINDOWSTATION
   +0x000 dwSessionId      : 1
   +0x008 rpwinstaNext     : (null)
   +0x010 rpdeskList       : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x018 pTerm            : 0xfffff960`002f5560 tagTERMINAL
   +0x020 dwWSF_Flags      : 0
   +0x028 spklList         : 0xfffff900`c192cf80 tagKL
   +0x030 ptiClipLock      : (null)
   +0x038 ptiDrawingClipboard: (null)
   +0x040 spwndClipOpen    : (null)
   +0x048 spwndClipViewer  : 0xfffff900`c1a4ca70 tagWND
   +0x050 spwndClipOwner   : 0xfffff900`c1a3ef70 tagWND
   +0x058 pClipBase        : 0xfffff900`c5512fa0 tagCLIP
   +0x060 cNumClipFormats  : 4
   +0x064 iClipSerialNumber : 0x16
   +0x068 iClipSequenceNumber : 0xc1
   +0x070 spwndClipboardListener : 0xfffff900`c1a53440 tagWND
   +0x078 pGlobalAtomTable: 0xfffff980`0bd56c70 Void
   +0x080 luidEndSession   : _LUID
   +0x088 luidUser         : _LUID
   +0x090 psidUser         : 0xfffff900`c402afe0 Void

Обратите внимание на поля spwndClipViewer, spwndClipboardListener и spwndClipOwnerfields. Здесь spwndClipViewer — это последнее зарегистрированное окно в цепочке тех, кто просматривает буфер обмена. Также spwndClipboardListener — последнее зарегистрированное окно прослушивания буфера в списке Clipboard Format Listener. Окно spwndClipOwner — это то окно, которое разместило данные в буфере обмена.

Ели мы знаем окно, то осталось несколько шагов, чтобы узнать, к какому процессу оно относится. Нас интересуют forspwndClipViewer, spwndClipboardListener и spwndClipOwner. Сначала запускаем dt, чтобы узнать значение tagWND. Для этой демонстрации мы используем spwndClipViewer:

kd> dt 0xfffff900`c1a4ca70 tagWND
win32k!tagWND
   +0x000 head             : _THRDESKHEAD
   +0x028 state            : 0x40020008
   +0x028 bHasMeun         : 0y0
   +0x028 bHasVerticalScrollbar : 0y0
…

Нас интересует только значение head — так что если смещение 0, делаем dt для того же адреса на _THRDESKHEAD:
kd> dt 0xfffff900`c1a4ca70 _THRDESKHEAD
win32k!_THRDESKHEAD
   +0x000 h                : 0x00000000`000102ae Void
   +0x008 cLockObj         : 6
   +0x010 pti              : 0xfffff900`c4f26c20tagTHREADINFO
   +0x018 rpdesk           : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x020 pSelf            : 0xfffff900`c1a4ca70  "???"

Теперь запускаем dt для адреса, указанного в поле pti как tagTHREADINFO:
kd> dt 0xfffff900`c4f26c20 tagTHREADINFO
win32k!tagTHREADINFO
   +0x000 pEThread         : 0xfffff980`0ef6cb10 _ETHREAD
   +0x008 RefCount         : 1
   +0x010 ptlW32           : (null)
   +0x018 pgdiDcattr       : 0x00000000`000f0d00 Void

Теперь нам интересно только значение поля pEThread, которое мы можем передать в !thread:
kd> !thread 0xfffff980`0ef6cb10 e
THREAD fffff9800ef6cb10 Cid 087c.07ec  Teb: 000007fffffde000 Win32Thread: fffff900c4f26c20 WAIT: (WrUserRequest) UserModeNon-Alertable
    fffff9801c01efe0  SynchronizationEvent
Not impersonating
DeviceMap                 fffff980278a0fc0
Owning Process            fffff98032e18b30       Image:         viewer02.exe
Attached Process          N/A            Image:         N/A
Wait Start TickCount     5435847        Ticks: 33 (0:00:00:00.515)
Context Switch Count     809            IdealProcessor: 0                 LargeStack
UserTime                  00:00:00.000
KernelTime                00:00:00.062
Win32 Start Address 0x000000013f203044
Stack Init fffff880050acdb0 Current fffff880050ac6f0
Base fffff880050ad000 Limit fffff880050a3000 Call 0
Priority 11 BasePriority 8 UnusualBoost 0 ForegroundBoost 2IoPriority 2 PagePriority 5
Child-SP          RetAddr           Call Site
fffff880`050ac730 fffff800`01488f32 nt!KiSwapContext+0x7a
fffff880`050ac870 fffff800`0148b74f nt!KiCommitThreadWait+0x1d2
fffff880`050ac900 fffff960`000dc8e7 nt!KeWaitForSingleObject+0x19f
fffff880`050ac9a0 fffff960`000dc989 win32k!xxxRealSleepThread+0x257
fffff880`050aca40 fffff960`000dafc0 win32k!xxxSleepThread+0x59
fffff880`050aca70 fffff960`000db0c5 win32k!xxxRealInternalGetMessage+0x7dc
fffff880`050acb50 fffff960`000dcab5 win32k!xxxInternalGetMessage+0x35
fffff880`050acb90 fffff800`01482ed3 win32k!NtUserGetMessage+0x75
fffff880`050acc20 00000000`77929e6a nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffff880`050acc20)
00000000`002ffb18 00000000`00000000 0x77929e6a

Как видим, просмотр буфера обмена зарегистрировн от имени процесса viewer02.exe. Поскольку просмотр идёт по цепочке, определить следующий процесс в цепочке будет непросто. Но мы можем сделать это для тех, кто прослушивает буфер. Снова взглянем на нашу Window Station:
kd> dt 0xfffff980`0be2af60 tagWINDOWSTATION
win32k!tagWINDOWSTATION
   +0x000 dwSessionId      : 1
   +0x008 rpwinstaNext     : (null)
   +0x010 rpdeskList       : 0xfffff980`0c5e2f20 tagDESKTOP
   +0x018 pTerm            : 0xfffff960`002f5560 tagTERMINAL
   +0x020 dwWSF_Flags      : 0
   +0x028 spklList         : 0xfffff900`c192cf80 tagKL
   +0x030 ptiClipLock      : (null)
   +0x038 ptiDrawingClipboard : (null)
   +0x040 spwndClipOpen    : (null)
   +0x048 spwndClipViewer  : 0xfffff900`c1a4ca70tagWND
   +0x050 spwndClipOwner   : 0xfffff900`c1a3ef70tagWND
   +0x058 pClipBase        : 0xfffff900`c5512fa0 tagCLIP
   +0x060 cNumClipFormats  : 4
   +0x064 iClipSerialNumber : 0x16
   +0x068 iClipSequenceNumber : 0xc1
   +0x070 spwndClipboardListener: 0xfffff900`c1a53440 tagWND
   +0x078 pGlobalAtomTable: 0xfffff980`0bd56c70 Void
   +0x080 luidEndSession   : _LUID
   +0x088 luidUser         : _LUID
   +0x090 psidUser         : 0xfffff900`c402afe0 Void

Если запустить dt на spwndClipboardListener, то увидим поле spwndClipboardListenerNext с указанием следующего прослушивающего процесса:
kd> dt 0xfffff900`c1a53440 tagWND spwndClipboardListenerNext
win32k!tagWND
   +0x118 spwndClipboardListenerNext : 0xfffff900`c1a50080 tagWND

При достижении последнего процесса в списке прослушивающих буфер tagWND, значение его поля spwndClipboardListenerNext будет нулевым:
kd> dt 0xfffff900`c1a50080 tagWND spwndClipboardListenerNext
win32k!tagWND
   +0x118 spwndClipboardListenerNext : (null)

Используя адрес окна, мы можем тем же методом добраться до названия процесса. Как упоминалось ранее, поскольку tagWND — это структура ядра, ОС сама хранит указатели spwndClipboardListener/spwndClipboardListenerNext, так что они не могут привести к таким проблемам с отслеживанием буфера, как цепочки просмотра.

На этом заканчивается наш обзор буфера обмена Windows. Надеюсь, для вас он стал информативным. Хотите узнать больше о мониторинге буфера обмена? Вот хорошая статья MSDN об этом.

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *