Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Мои поздравления megabyte0. Я надеюсь, что остальные тоже давно сделали, но молчат. А то за человечество обидно. )
mike4kz, ты думаешь слишком сложно. ) Я тоже думал о декомпиляции через swftool и выполнении разбирая текстовые команды. В принципе вариант, но потом меня посетила мысль о том, что разработчики впихнут еще какую-нибудь функцию и придется переписывать. И да, swftools, мультиплатформенный.
На мой взгляд это лучшее универсальное и кроссплатворменное решение, но так же и довольно ненадежное, в случае новых изменений алгоритма.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vhyrix
Мои поздравления megabyte0. Я надеюсь, что остальные тоже давно сделали, но молчат. А то за человечество обидно. )
mike4kz, ты думаешь слишком сложно. ) Я тоже думал о декомпиляции через swftool и выполнении разбирая текстовые команды. В принципе вариант, но потом меня посетила мысль о том, что разработчики впихнут еще какую-нибудь функцию и придется переписывать. И да, swftools, мультиплатформенный.
На мой взгляд это лучшее универсальное и кроссплатворменное решение, но так же и довольно ненадежное, в случае новых изменений алгоритма.
Дай свой ВК пожалуйста,нужна помощь.
Добавлено через 16 минут
Уважаемые Vhyrix помогите мне пожалуйста,напишите в ЛС.
Последний раз редактировалось Ghetto228; 30.07.2014 в 21:43.
Причина: Добавлено сообщение
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vhyrix
Мои поздравления megabyte0. Я надеюсь, что остальные тоже давно сделали, но молчат. А то за человечество обидно. )
mike4kz, ты думаешь слишком сложно. ) Я тоже думал о декомпиляции через swftool и выполнении разбирая текстовые команды. В принципе вариант, но потом меня посетила мысль о том, что разработчики впихнут еще какую-нибудь функцию и придется переписывать. И да, swftools, мультиплатформенный.
На мой взгляд это лучшее универсальное и кроссплатворменное решение, но так же и довольно ненадежное, в случае новых изменений алгоритма.
Удалось починить? А то на др уехал, приезжаю, а тут беда
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
хоть я и не доверяю экзешникам, но бот от Vhyrix работает. спасибо!
Добавлено через 12 минут
правда лог сложный. а для простого человека вообще не понятный. нужно всмартиваться чтобы понять что происходит. не понятно где бот роется, в каком режиме.
Добавлено через 18 минут
с одной стороны хорошо что бот одно действие в ивенте отправляе. это имитирует действия человека. но это медленее чем несколько действий в одном ивенте и больше трафика/подключений/пакетов требует.
Последний раз редактировалось dreamerag2; 30.07.2014 в 23:33.
Причина: Добавлено сообщение
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Спасибо, ребята. Честно, я всего ожидал, критики, в плане
"а где обработка ошибок?",
"что, если он не загрузит salt, он так и останется висеть, никому не сказав ничего?",
"а если он файл не создаст?",
"если ты говоришь что salt лежит на сервере минут 15, зачем ты за ней ломишься через 1000 событий, 15-то минут всяко ведь пройдут, не лучше её сохранить?",
неответа, но не такого :)
Цитата:
Сообщение от vintets
О спасибо, гуру. Будем пробовать.
Цитата:
Сообщение от JohnMorgan
У меня восторг от таких людей Все просто идеально, не ожидал такого Спасибо
Спасибо. :)
Цитата:
Сообщение от JohnMorgan
Осталось научить бота читать этот файл и логинится уже используя эти ключи.
А что, с этим проблемы? :)) Да, я пропустил
import os
import subprocess
что надо вписать в заголовок. Или другие? :)
Дальше - меня посетил неприятный сюрприз, причём именно сегодня - нужно брать swf с saltFunc именно с того сервера, на который тебя перенаправляют через REDIRECT ... У меня в коде это
this.serverUrl = "http://java.shadowlands.ru/zombievk";
Ну, ставим заплатку... на заплатку :) Не нравится мне то, что в итоге начинает получаться, но да ладно.
Меняем 3 строчки на
Код:
var file:File = new File("D:\\Install\\ZomBot\\sig\\bin\\url.txt");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);
this.serverUrl = stream.readUTFBytes(file.size);
stream.close();
//this.serverUrl = "http://java.shadowlands.ru/zombievk";
file = new File("D:\\Install\\ZomBot\\sig\\bin\\keys.txt");
stream = new FileStream();
, потому что мы не можем взять server_url из Factory, создатели бота потрудились :)
ну и в класс Request вставляем пару строчек сохранения файлика
Код:
if 'redirect' in response:
with open("sig\\bin\\url.txt",'wt') as f:
f.write(response['redirect'])
server_url = response['redirect'] + '/go'
После этого у меня опять всё работает :))
Цитата:
Сообщение от vintets
Скомпилил...
чем?
Цитата:
Сообщение от vintets
пути поправил на укороченные (так можно?)
запусти в IDE и посмотри? Если работает, значит можно. :) У меня не получалось, поэтому именно в этом месте оставил полные.
Цитата:
Сообщение от vintets
Чем его запускать? Что должно быть в Run.bat ?
Run.bat генерируется при создании проекта, возможно именно flashdevelop, я первый раз на флеше пишу. Здесь есть вроде специалисты именно по флешу, как я понял, например уважаемый JohnMorgan
В файле основная строчка
adl "application.xml" "bin"
и куча всякой подготовки, вызов ещё пары batников. adl это, как я понял, AIR debug launcher
Может быть можно скомпилить сразу в exe, я что-то не стал запариваться, раз и так заработало :)
Цитата:
Сообщение от mike4kz
Ты не разбррался, есть ли готовый модуль для Питона, оозовлдяющий или вытащить оттуда скрипт, или аапустить АкшенСкрипт Симулятор?
Признаться, да. Искать такие пакеты/программы, не будучи уверенным, что они есть, возможно, заняло бы большее время. Хотя уважаемый vhyrix, как я понял, нашёл swftools.
Цитата:
Сообщение от mike4kz
проблема в том, что нужен только один "ключ", тогда как в файле будет тысяча. Если пробовтть из все перебирать, то вероятнее всего забанят еще на взлете...
нам нужен sig. как генерируется sig?
s = this.sessionKey + id.toString() + this.authKey;
sig = md5(s + this.sigSaltFunc(s));
, где sigSaltFunc нам отдали в "виде swf" с сервера.
то есть, грубо говоря, sig = f(sessionKey,id,authKey)
при этом из параметров функции f меняется только id, возрастая каждый раз на 1
например, мне отдали начальный id 1406746481007, тогда я сгенерю sig для id с 1406746481007 по 1406746482006 и буду кормить серверу по очереди (первый - для START, второй, например, - для сбора урожая, третий - для вскопки и т д). Понятно, каждый sig подойдёт к своему id, а они по очереди. Никакого перебора здесь нет.
Цитата:
Сообщение от mike4kz
я кручу все на Линуксе
тогда понятно, я вроде не увидел AIR SDK под linux на офсайте. Хотя, если найти, чем запускать такие swf под linux, можно попробовать скомпилировать и в wine один раз :))
Я опять же вижу второй вариант - "понимание" флешки питоном, я понимаю его преймущества, но, пока что у меня нет желания тратить своё время для того, чтобы вручить ботоводам готового бота, которые опять из-за незаботы об серваке со стороны написателей бота вызовут волну банов, и побанят и меня. Короче, мне придётся тратить время на то, что в конце концов меня побанит.
Кто бы мне только пояснил, с какого смещения искать таблицу классов/методов, как в ней отличить класс от метода и с какого смещения идёт байт-код. Дальше ведь просто.
Конвертим байт-код в p-code, а так как вариантов строчки всего 7 или сколько там, то их p-code легко забить в словарь и т д
Цитата:
Сообщение от JohnMorgan
Обижаешь с незнанием флэша
Я хотел бы тогда спросить, можно ли swf загруженную этим class_314 записать в файл, а потом (при следующем запуске) грузить из файла, сравнивая имя класса, и, если расходится, уже тогда грузить из url? Просто из url нам второй раз уже не отдадут, а 1000 может и не хватить.
Цитата:
Сообщение от vhyrix
Мои поздравления megabyte0.
Да нет же, ты сделал на 2-3 суток раньше меня, похоже универсальнее и проще. Плюсом я ещё не всё понял по поводу привязки авторизации к аккаунту, просто не смотрел.
Цитата:
Сообщение от vhyrix
Я надеюсь, что остальные тоже давно сделали, но молчат. А то за человечество обидно. )
Да нет, давай публикуй свои исходники :)))
Я прекрасно понимаю, что мой метод исправления - "не для всех", ты ж своего бота продавать собрался, вот и я не мешаю. :) А на питоне класс, я думаю, ты напишешь сам, на нём можно писать, как на Си, только вместо { } отступы и вместо this self, ну и т д, с минимальными различиями :) Единственное, что по поводу сетевых соединений я посоветую посмотреть в сторону request, urllib3 или на худой конец самого connection из бота, но никак не стандартных питоновых классов :) Остальное должно быть несложно. Ты только считаешь, что тебе нужен человек, кто бы написал класс. На самом деле, ты сам можешь.
Впрочем это ко всем программерам здесь и к любому С-основанному языку относится :)) Больше уверенности, господа. Я программирую на питоне 3 месяца, а на flash это вообще моя первая программа. Какой я нафик гуру :) :))
Последний раз редактировалось megabyte0; 31.07.2014 в 00:23.
Причина: не умею в разметку
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Кто бы мне только пояснил, с какого смещения искать таблицу классов/методов, как в ней отличить класс от метода и с какого смещения идёт байт-код. Дальше ведь просто.
Конвертим байт-код в p-code, а так как вариантов строчки всего 7 или сколько там, то их p-code легко забить в словарь и т д
Как раз пытаюсь добиться "шаблонности" (перевод "побайтного" шаблона в соответствующий Питоновский код). Наиболее простые "шаблоны" уже перевел (разобрался, где, собственно, начинается код и где он заканчивается). Однако в некоторых конструкциях (особенно где много всяких split/join/replace) может быть затык. Но спасибо за идею просто запускать SWF под Линуксом... Попробую поискать.
PS. Сама игра, собственно, уже не интересует. "Отпустило" уже давно. Но решить проблему... это уже интересно.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Я хотел бы тогда спросить, можно ли swf загруженную этим class_314 записать в файл, а потом (при следующем запуске) грузить из файла, сравнивая имя класса, и, если расходится, уже тогда грузить из url? Просто из url нам второй раз уже не отдадут, а 1000 может и не хватить.
Можно. Например, при запуске сделать проверку MD5 ,или находить различия в файлах.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от JohnMorgan
при запуске сделать проверку MD5 ,или находить различия в файлах.
Я наверно неправильно вопрос сформулировал
Возможно ли на флеше
1. Выгрузить (загруженный из url) swf в файл
2. Загрузить swf из файла и использовать его части внутри своего
3. Взять имя класса из swf, загруженного так или так
А то я выдрал class_314, который SigSaltFuncLoader, но не разобрался :)
Спасибо :)
Последний раз редактировалось megabyte0; 31.07.2014 в 10:35.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Я наверно неправильно вопрос сформулировал
Возможно ли на флеше
1. Выгрузить (загруженный из url) swf в файл
2. Загрузить swf из файла и использовать его части внутри своего
3. Взять имя класса из swf, загруженного так или так
А то я выдрал class_314, который SigSaltFuncLoader, но не разобрался
Спасибо
1. - Можно, а вот остальное - нельзя, к сожалению.