Что это?
Простенький инструмент для того, чтобы обойти ограничение количества активных участников в играх Encounter.
Как это работает?
Вы общаетесь с Анонимайзером, а он общается с движком Encounter. При этом вас может быть много, а Анонимайзер один. Поэтому движок Encounter считает, что читает задания и вводит коды только один игрок. А вы в это время видите в браузере привычный интерфейс и не замечаете разницы (кроме разницы в скорости отклика движка).
Как это совмещается с принципом FairPlay?
Моя позиция такова, что ограничение количества активных участников в играх Encounter является глупым, вредным и неэффективным. Глупым - потому что никак не ограничивает число фактических участников игры, а всего лишь затрудняет им доступ к движку. Вредным - потому что провоцирует команды искать окольные пути. Неэффективным - потому что большинство регулярно играющих команд уже проложили и утоптали эти окольные дорожки.
Пожалуй, единственная цель, которая успешно достигается этим ограничением, - это насильственное дробление команд с целью повышения доходов авторов игр.
Таким образом, настоящий FairPlay в играх Encounter возможен только при отмене ограничения количества активных участников. Именно эту цель (отмену ограничения) я и преследую.
Установка(upd: 29.10.2013).
1) Качаем инсталлятор отсюда
2) Устанавливаем
3) В папке, куда оно поставилось, редактируем файл settings.ini
там заполняем:
username - существующий логин под которым будет играть команда.
password - пароль
domain - домен, на котором мы будем играть.
Например, есть игра с ограничением состава на домене msk.en.cx
Наш файл должен иметь примерно такой вид:
username=air password=airpassword domain=msk.en.cxПо-умолчанию, сервер будет работать на порту 8001. Если он у вас чем-то занят - то необходимо поменять его в последней строке файла anonymizer.py на любой открытый порт на вашем компьютере.
ВНИМАНИЕ. Домен вводим именно в формате "xxx.en.cx", а не "www.xxx.en.cx" или "http://xxx.en.cx/" Будьте внимательны.
Запуск.(upd: 29.10.2013)
Кликаем на ярлычке.
Если у вас при запуске была следующая ошибка:
socket.error: [Errno 98] Address already in useзначит 8001 порт у вас занят. нужно либо освободить его либо указать другой в скрипте.
Теперь все. Сервер готов к использованию.
Открываем в браузере http://<ваш внешний айпишник>:8001/
Cвой внешний айпишник можно определить зайдя сюда
То есть если у вас айпи 79.125.20.11 и порт указан по-умолчанию, открывать будем
http://79.125.20.11:8001/
В открывшемся окне смотрим залогинены ли мы. Если нет - снова редактируем файл и вводим правильные логин и пароль еще раз. сохраняем файл, перезапускаем сервер, обновляем страницу в браузере.
Если залогинены - кидаем ссылку в чат остальной команде. Приятной игры.
ВНИМАНИЕ. Если вы выходите в сеть через роутер то в браузере вы увидите что страница не найдена. В этом случае вам нужно единоразово "пробросить порты":
смотрим свой локальный айпишник, идем в настройки роутера, находим там port forwarding и указываем forwarding для определенного порта на свой айпишник, сохраняем настройки, обновляем страничку в браузере. все.
Нюансы.
Анонимайзер "запоминает" все введенные ответы всеми игроками которые его используют в данный момент и не дает повторно вводить одно и тоже в систему - для того что бы было меньше палева в мониторинге.
Сбросить память ему можно введя в качестве ответа слово "ап". Само слово на сервер отправляться не будет но теперь он начнет запоминать ответы игроков с нуля. Это полезно при переходе на следующий уровень в играх линейного типа.
Советы.
1) Рекомендую не играть с помощью анонимайзера в игры типа брутфорс или гх ибо быстродействия вашего компьютера и скорости интернет-соединения может не хватить для того что-бы быстро обрабатывать кучу запросов в секунду. В этом случае анонимайзер может подлагивать.
2) Рекомендую обновлять задания при помощи кнопки "Обновить" в меню игры.
3) Рекомендую использовать анонимайзер исключительно по прямому назначению - то есть смотреть задания и бить ответы. Не нужно там ф5тить статистику или писать посты на форум или делать денежные переводы и тд и тп. Это все лишние запросы к серверу, что может привести к лагам и тормозам.
Исходник.
anonymizer.py
# -*- coding: utf8 -*-
import urllib
import random
from flask import Flask, request
app = Flask(__name__)
from MozillaEmulator import *
dl = MozillaEmulator()
username = ""
password = ""
domain = ""
answers = ['ап']
answer = ""
def do_login():
login_url = "http://%s/Login.aspx?return=/" % domain
page = dl.download(login_url, postdata=urllib.urlencode({"Login": username,
"Password": password}))
print "******** READY ********"
@app.route('/')
def home():
url = "http://%s/" % domain
page = dl.download(url)
return page
@app.route('/', methods=['GET', 'POST'])
def index(link):
url = "http://%s/%s?%s&lol=%s" % (domain, link, request.query_string, random.random())
if request.method == 'GET':
page = dl.download(url)
if request.method == 'POST':
post_data = {}
for k, v in request.form.to_dict().items():
post_data[k] = v.encode('utf-8')
if k == 'Answer':
answer = post_data[k]
if answer in answers:
page = dl.download(url)
if answer == 'ап':
global answers
answers = ['ап']
else:
answers.append(answer)
page = dl.download(url, postdata=urllib.urlencode(post_data))
return page
if __name__ == "__main__":
do_login()
app.run(port=8001, host='0.0.0.0')
Если есть вопросы по установке-настройке-использованию - пишите прям тут в комментах.
Кросавчег!
ОтветитьУдалитьВсе установил работает все замечательно, но появился маленький вопрос можно ли как-то привязать собственную авторизацию. Чтобы человек прежде чем попасть в Анонимайзер ввел какой нить пароль? просто в программирование не силен. А функция у больно нужная.
ОтветитьУдалитьДобавить то можно. и можно еще много чего добавить.
УдалитьЯ специально выкладывал минимально-простой вариант приложения.
Далее - каждый волен модифицировать его как угодно.
Если вы боитесь что вас будут "прослушивать" зная уже Ваш айпишник - поиграйтесь с портами.
По-моему, самый простой вариант защиты без написания дополнительного кода - это указывать в последней строке скрипта произвольный порт типа 23232 и все. Не зная его - ваше приложение будет довольно сложно отследить снаружи.
С портами я уже думал, но как вариант не подходит, так как роутер подвязан к службе ddns и проброшен определенный порт. Каждый раз не очень удобно менять порт на роутере. Может подскажите хоть в какую сторону копать, чтобы попробовать сделать хотя бы предварительный запрос пароля.
Удалить2) Flask
ОтветитьУдалитьКачаем этот файл.
нет файлика :(
и этих тоже нету
ОтветитьУдалить3) Скрипты.
Берем здесь.
Может кто подскажет?
ОтветитьУдалитьНастроил, всё поднялось.
При заходе на анонимайзер, сайт грузится, но при нажатии на любую ссылку (будь-то календарь или редактирование профиля) - вылетает ошибка в браузере.
Вот скриншоты.
http://ipic.su/img/img3/fs/kiss_29kb.1373920915.jpg
http://ipic.su/img/img3/fs/kiss_25kb.1373921175.jpg
забей, все нормально.
Удалить