Пытаюсь написать программку, которая подставлялась бы в браузер, перехватывала направляемый в него html код и правила по своему усмотрению. Как бы смешно это не звучало, но где этот самый код искать? То есть моя программа перехватывает wsock32!recv, в результате чего я имею возможность наблюдать, что содержится в буфере после вызова данной функции. Все более-менее понятное, что удалось выудить оттуда - это короткие ответы сервера вида HTTP/1.1 200 Ok<\n> Content-Type: text/html<\n> Остальное - символьная мешанина. А где сами html теги? Они обязательно лежат в строке ответа в первоначальном виде или как-то закодированы (для проверки брал поиск в google)? Возможно вопрос глупый, но мне нужна хоть какая-то определенность - может теги должны быть видны невооруженным глазом, а я слепой и их не вижу (допускаю, так как в отладчике могу просмотреть только n-ый recv, где n указываю в коде самой программы). Люди, пожалуйста помогите чайнику - очень нада.
Перехвати send(WSASend etc.) и посмотри на поле в заголовке: Если у тебя есть, что-то подобное, а оно скорее всего есть, то естественно в качестве ответа ты получаешь сжатые данные. Дальше думай сам Самый простой способ избавиться: при перехвате запроса править заголовок в нужном направлении.
Черт, похоже не все. Значение заголовка Accept-Encoding убил, теперь все видно, как на ладони=) Но вот незадача - опять тестирую с поиском в гугле, получаю вполне осмысленное содержимое, но не полностью - результаты поиска остаются где-то за кадром. Последующий перехват recv ничего не дает (хотя тут опять же допускаю свою ошибку - возможно нужный recv пропускаю), хотя в браузер страница грузится полностью. Если нужно догрузить оставшийся контент, как поступает браузер? Как можно получить оставшуюся часть страницы? Используя recv один раз может ли браузер получить больше одного пакета?