Кросс-бразуерный перехват и подмена польз. ввода и отображаемой информации
От: LWhisper  
Дата: 01.02.15 05:28
Оценка:
Всем привет!

В рамках дипломного проекта, хочу разработать программный комплекс для перехвата вводимого пользователем текста и подмену приходящих от сервера сообщений, отображаемых на web-мордах в различных браузерах.
Для примера, можно взять соц.сеть ВК.
1) Человек вводит текст в поле отправки сообщения. Нажимает "Отправить".
2) Сообщение перехватывается и отправляется запущенному в системе сервису (н.п. на localhost:9009).
3) Сервис заменяет его на другое сообщение, запоминая хэш нового и текст старого, после чего возвращает браузеру новое.
4) Старое сообщение заменяется новым и отправляется получателю.
5) При обновлении формы, сообщения вновь перехватываются и отправляются сервису, который сопоставляет их с известными хэшами и заменяет на оригинальные тексты, если они есть, возвращает браузеру.
6) Новые сообщения подменяются старыми и отображаются пользователю, таким образом для него, в рамках текущей сессии сервиса, никаких видимых изменений нет.

Посоветуйте — при помощи чего оптимальнее всего выполнить такую интеграцию?
Можно начать с конкретного браузера и SDK под него, поддерживать только один конкретный сайт ВК. Можно использовать унифицированные средства модификации клиентской части web-сервисов, н.п. GreaseMonkey.
Единственное от чего стоит воздержаться — это переход на уровень драйвера и разбора сетевых фреймов. К этому я пока морально не готов.
Хочется сделать максимально простую реализацию, от которой в последствии можно будет отталкиваться.

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