В связи с разгулом банхамера по интернет просторам участились советы по использованию различных прокси, vpn, tor и анонимайзеров для обхода блокировок сайтов. Эти все способы отправляют трафик третей стороне которая его может перехватывать и модифицировать. Это не наш метод. Мы сейчас просто и легко научим браузер дурить DPI.
Я вдохновился этой статьёй и сообразил относительно лёгкий способ ходить на заблокированные сайты прямо а не используя чужие прокси, дополнения и программы.
я осуществил необратимые манипуляции с доменным именем таким образом, чтобы не существовало ни одного достоверного и однозначного алгоритма обращения получившейся хеш-функции.
Исходные данные:
Заблокированный сайт(Адрес изменён):
http://rutracker.og
Это один из сайтов на который РКН ограничил доступ.
Страница блокировки(Адрес изменён):
http://198.51.100.0/...
Адрес страницы заглушки которая появляется при попытке открытия сайта. У каждого провайдера адрес страницы заглушки наверно разный.
Итак открываем блокнот и пишем первый скрипт:
function FindProxyForURL(url, host) {
if (shExpMatch(url, "http://*") && shExpMatch(host, "rutracker.og")) {
return "PROXY rutracker.og; DIRECT";
}
return "DIRECT";
}
Сохраняем как «proxy.pac»
Суть этого скрипта в том чтобы использовать как прокси сам сервер к которому мы и хотим получить доступ.
Подключаем «proxy.pac» в Chrome:
1. Настройки -> Показать дополнительные настройки ->
Сеть -> Изменить настройки прокси-сервера ->
Вкладка «Поключения» -> Настройка сети
2. Ставим галочку «Использовать сценарий автоматической настройки»
3. В поле адрес пишем полный путь к «proxy.pac»
Например: C:UsersnameDocumentsproxy.pac
Теперь страница блокировки будет появляется через раз.
Снова открываем блокнот и пишем:
// ==UserScript==
// @name BackUserJS
// @description Window History Back Script
// @author ivan386
// @license MIT
// @version 1.0
// @include http://198.51.100.0/*
// @run-at document_start
// ==/UserScript==
(function (window) {
var w;
if (typeof(unsafeWindow) != 'undefined') {
w = unsafeWindow
} else {
w = window;
}
if (w.self != w.top) {
return;
}
if (/http://198.51.100.0/.test(w.location.href)) {
w.history.back()
}
})(window);
Сохраняем как «back.user.js» в папку «back»
Этот скрипт возвращает нас на страницу где мы можем снова кликнуть заблокированную ссылку.
И опять открываем Блокнот и пишем:
{
"manifest_version": 2,
"content_scripts" : [
{
"js":[ "back.user.js" ],
"matches":[ "http://198.51.100.0/*" ],
"run_at":"document_start"
}
],
"description" : "Window History Back Script",
"name" : "BackUserJS",
"version" : "1.0.0"
}
Сохраняем как «manifest.json» в папку «back»
Теперь добавим в Chrome как Расширение:
1. Дополнительные инструменты -> Расширения
2. Ставим галочку «Режим разработчика»
3. Нажимаем «Загрузить распакованное расширение...»
4. Находим папку «back» в которую сохраняли «back.user.js» и «manifest.json» и нажимаем ОК
Проверяем:
1. Перезагружаем Chrome
2. Нажимаем «Отмена» в окошке «Отключить расширения в режиме разработчика» справа.
3. Пишем в адресную строку адрес заблокированного сайта и нажимаем Enter.
4. ???
5. PROFIT
Использованные материалы:
Изучаем deep packet inspection у RETN
Proxy Auto Configuration (PAC)
Учимся писать userscript'ы
Userscripts. Упаковываем юзерскрипт для Chrome
Автор: ivan386