Скачать взломанную версию Тор 2 - официальная игра на Андроид. Лёгкая интеграция tor в android приложение на примере клиента для рутрекера / Хабрахабр. Мне давно было интересно, можно ли легко добавить проксирование через тор в Android приложение. Вы смотрели фильм Тор? Кинокартина была снята о боге Торе который спас Землю от. Вот и дошло время до андроид, а именно на данную платформу выпустили игру - Thor 2: The Dark World игровая компания Gameloft.
Вроде бы довольно очевидная задача, плюс тор браузеры уже под эту платформу давно есть. Для нетерпеливых сразу скажу — да, можно, и получается довольно легко, быстро и классно. В особенности если не копать с нуля, а воспользоваться моими наработками. Раньше это приложение обходило блокировку при помощи Google Compression Proxy — но увы — то ли рутрекер, то ли гугл выпилил возможность авторизации с этой проксёй. Сразу скажу, что, конечно, есть всякие впны и прочее, что вы используете для лёгкого обхода блокировки и просмотра сериальчиков. Но речь здесь идёт не про это. Как вы понимаете, тор можно использовать в мобильном приложении для огромного количества вещей — например, для доступа к веб сайтам в . Как подключить библиотеку для работы с Тором. Как собрать с нуля. Если вас не интересует сборка с нуля, то сразу перейдите к следующему заголовку. Итак, что у нас есть на эту тему из готового инструментария. Есть особый репозиторий от неких ребят под предводительством Microsoft (ссылка в подвале). Вроде бы у них всё работало — но качество и механизм сборки просто ужасают. А ещё репозиторий устарел на два года. И скомпилированный версии библиотеки там нет, есть только довольно стрёмные инструкции по тому, как собрать её самостоятельно (в стиле — “я делал так, не знаю почему, но без этого ничего не работало”). Впрочем, имеющихся инструкций вполне достаточно для того, чтобы обновить код до актуального состояния и исправить все странные косяки. Клонируем себе этот репозиторий. Обновляем там компонент, который отвечает за управление тором — jtorctl. Они использовали форк основного репозитория с правками от briar, но эти правки уже включены в основной репозиторий, так что лучше взять с основного. Можно подключать из maven репозитория, но я такие вещи обычно забираю исходниками — можно сразу посмотреть, прогнать анализ и править на лету баги — проект- то довольно сырой, несмотря на возраст. Обновляем geoip и geoip. IP- адресов с привязкой к географическому положению каждого блока для версий IPv. IPv. 6 соответственно. Для этого скачиваем на сайте тора windows expert bundle. Обновляем сам тор (то есть нативную библиотеку). Стандартной общедоступной нет (ну или я плохо искал) — так что идём к ребятам, которые разрабатывают тор и тор браузер под андроид (Orbot и Orfox), берём последний релиз их Orbot и вынимаем оттуда библиотеку. Тор там довольно свежий, что приятно. Правим руками всё, что перестало компилироваться в нашем проекте. Несколько функций в зависимых библиотеках изменились, но в целом всё интуитивно понятно и поправимо за 5 минут. Следуя рекомендациям ридми нашего проекта, создаём локальные мавен репозитории и строим из кучи кусков наш проект. Кстати, обратите внимание, что билд скрипт настолько кривой, что в одном месте включает в себя предыдущий релиз себя же. Так что рекомендую переписать его заново, простым и понятным языком, чтобы получить на выходе обыкновенную библиотеку aar. Как собрать из моих наработок. Пункты 1- 6 я уже сделал за вас, так что просто соберите библиотеку из моего репозитория, или скачайте её в секции релизов. Ссылка будет в “подвале” поста. Однако обращаю внимание, что правильным будет проверить код и библиотеки на соответствие оригинальным и отсутствие закладок. Не стоит такие вещи добавлять вслепую в свои приложения. Как перестать волноваться и начать проксировать через тор. Сначала нужно включить тор: int total. Seconds. Per. Tor. Startup = 4 * 6. 0. Tries. Per. Tor. Startup = 5. У нас теперь есть тор, который слушает порт в качестве Socks. Однако далеко не все стандартные библиотеки умеют работать с Socks. Там из соображений анонимности требуется, чтобы резолв хоста происходил на прокси, а не ранее. Не знаю, какие из стандартных библиотек это умеют, и у меня был код, написанный с Apache Http. Components. Я уже писал ранее, почему их можно использовать, да и данный пост не про то. Если вы хотите, то можете реализовать то же самое на любой другой библиотеке. Итак, для использования http. Components нам нужно переписать Connection. Socket. Factory и SSLConnection. Socket. Factory. SSLConnection. Socket. Factorypublic class My. SSLConnection. Socket. Factory extends SSLConnection. Socket. Factory . Для этого нужно создать Http. Client, который использует эти библиотеки: public Http. Client get. New. Http. Client() . Более того, мы можем так же обращаться и к веб сайтам . Результат. Получившийся код я использовал в своём приложении для рутрекера. Да, инициализация тора занимает около 2. А все ресурсы, которые не блокированы, подгружаются через обычное соединение. Можно было бы остальные ресурсы пропускать через Google Compression Proxy, но многие жаловались, что у них заблокирован этот прокси — так что я не стал этого делать. Конечно, в приложении можно было бы ещё много всего сделать — например, кэшировать статику на телефоне для экономии трафика и более быстрой работы — но это не столь критично, да и приложение я писал скорее для примера. Заключение. Тор на андроиде — классная и удобная штука, которая достаточно работает, и её действительно можно использовать в своих приложениях. Кстати да, есть гораздо более лёгкий способ это делать — просто требовать установки Orbot, который сам поднимет вам тор. Но мне не нравятся зависимости одних приложений от других, да и 3 лишних мегабайта не так критичны в размере приложения. Так что если кому понравилось моё решение — используйте, делайте пулл реквесты, и да пребудет с вами свобода. Ссылки: Исходная библиотека; Моя сборка библиотеки; Приложение для рутрекера; Guardian Project — ребята, которым мы обязаны наличием нативной тор библиотеки.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |