Dragon armor Posted September 30, 2020 Author Share Posted September 30, 2020 (edited) @DrWeb7_1 Пока что не знаю. Но при этом снаружи-то ничего и не должно измениться. А может и должно. Вот например, надо loginapp выносить в питон? Это потянет БД за собой туда же. Или надо интерфейс взаимодействия делать. Вчера попробовал простой тест провести. Сделал бесконечный цикл отправки сообщения ping на сервер. Не успевает обрабатываться, использование памяти выросло до 600 мб и продолжило бы расти. Как только прервал отправку, достаточно быстро всё дообрабатывалось и отправилось. Интересно, а как у картохи дела с этим обстоят? Какая защита от подобных действий? Edited September 30, 2020 by Dragon armor @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted September 30, 2020 Share Posted September 30, 2020 1 час назад, Dragon armor сказал: Интересно, а как у картохи дела с этим обстоят? Какая защита от подобных действий? Звучит, конечно, глупо, но может они как-то определяют дублирующиеся пакеты и отсекают их на подлёте? Не это ли называют SYN-флудом? @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted September 30, 2020 Author Share Posted September 30, 2020 29 минут назад, DrWeb7_1 сказал: они как-то определяют дублирующиеся пакеты и отсекают их на подлёте? Так можно не дублирующие пакеты делать. Пинг - очень простой пакет на 12 байт, который, тем не менее, проходит все стадии парсинга пакетов. Кстати, картоха изменила немного сетевой протокол. По крайней мере, не шифрованные пакеты (тот же пинг) теперь в начале дополняются четырьмя байтами. Похоже, это контрольная сумма, но не банальный crc32 (он просто не подошёл). Хотел тут посмотреть, что за пакет probe такой, а не вышло. Можно, к слову сказать, из клиента отправить и снифером захватить. Не знаю, остался ли функционал, в 0.9.* есть такая функция BigWorld.probe с двумя параметрами, последний - колбек ("argument 2 must be callable"), подозреваю, аналогично колбеку login, который зовётся BigWorld.connect, третий параметр def __serverResponseHandler(self, stage, status, responseDataJSON). Вызываться должен до логина. Ни разу мне в дамп не попал, зачем нужен - не понятно. Ради интереса попробую. В общем, мой сервер можно будет уронить банальной отправкой кучи сообщений ping. Ну и ладно. @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted September 30, 2020 Share Posted September 30, 2020 40 минут назад, Dragon armor сказал: но не банальный crc32 Adler32? Его я встречал в лончере, такой вид к/с применяется для проверки целостности. @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted September 30, 2020 Share Posted September 30, 2020 45 минут назад, Dragon armor сказал: но не банальный crc32 У CRC32 есть образующий полином, с которого начинается xor. Этот полином можно и нужно менять при юзании CRC32 для внутренних нужд. @ Quote Link to comment Short link Share on other sites More sharing options...
Plotnik5252ru Posted September 30, 2020 Share Posted September 30, 2020 4 часа назад, StranikS_Scan сказал: У CRC32 есть образующий полином, с которого начинается xor. Этот полином можно и нужно менять при юзании CRC32 для внутренних нужд. Хорошая идея думаю это тоже можно затестить @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 (edited) У меня на днях файловая система жёсткого диска развалилась, потихоньку восстанавливаю данные. Добрался до клиента 0.9.22.0.1 с твоим эмулятором. Вроде бы последовательно распаковал все архивы, которые у меня были, но что-то не даёт запуститься. Edited October 2, 2020 by DrWeb7_1 @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 UPD: запустил из-под виртуалки, где чудом сохранились все параметры. Вошёл в бой, через несколько минут упало. @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 @DrWeb7_1 Да брось пока что. Толку-то от того эмуля? Надо нормально этот протестировать и поделюсь с тобой. Только надо, так думаю, ещё и питоновые скрипты переписывать. Если loginapp можно полностью в эмуле оставить, то baseapp неплохо бы частично перенести в питон, а cellapp тем более там должен быть. Плюс, в скриптах там такой ужас сейчас. Надо порядок навести. Сетевая часть оказалась ну очень сложной. BigWorld сделали, по сути, свою реализацию TCP, только с полным контролем. С probe так нечего не получилось. Актуальный клиент отказывается его отправлять. Хотел посмотреть, как формируется контрольная сумма, надолго задумалась программа, очень похожая на Ida при анализе бинарника, мне надо было уйти, перевёл компьютер в спящий режим. А по возвращению он из спящего режима не вышел, ожили куллеры, диски, но никакой реакции не было, и, что очень странно, ни на кнопку перезагрузки, ни на зажимание кнопки питания. Пришлось выключить, а когда включил, получил сообщение от биоса, что POST не пройден и предложение выбрать настройки по умолчанию. Впервые подобное произошло. Ну его, этот бинарник. @DrWeb7_1 Там, похоже, стандартные питоновые скрипты не найдены. @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 2 минуты назад, Dragon armor сказал: Да брось пока что. Толку-то от того эмуля? То есть, я на данный момент свободен? 3 минуты назад, Dragon armor сказал: Хотел посмотреть, как формируется контрольная сумма, надолго задумалась программа, очень похожая на Ida при анализе бинарника, мне надо было уйти, перевёл компьютер в спящий режим. OllyDbg такое творить не может, если это она. @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 4 минуты назад, DrWeb7_1 сказал: То есть, я на данный момент свободен? А ты всё это время тестировал эмуль? 5 минут назад, DrWeb7_1 сказал: OllyDbg такое творить не может Статический анализ, не отладчик. Не знаю, что произошло. @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 1 минуту назад, Dragon armor сказал: А ты всё это время тестировал эмуль? Я просто ожидал ещё какую-то пачку задач от тебя, над которой можно было бы голову поломать. @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 Только что, DrWeb7_1 сказал: Я просто ожидал ещё какую-то пачку задач от тебя, над которой можно было бы голову поломать. Вообще, есть. Кроме этого, несколько человек просили меня эмулем поделиться, на что им писал, что нечего показывать ещё. Ведь нечего же? Запустить только да в ангаре покрутить танк. Ну в бой, даже не так, "в бой" выйти можно. И всё. А что нужно, это со скриптами разобраться. Если ты смотрел, там огромные бинарные данные есть, которые передаются на отправку. Это то, что, по-хорошему, надо бы разобрать и выяснить, как подобное сформировать. Там используется дамп трафика из моего личного аккаунта. Просто скопировал как массив 16-ричных данных, чтобы работало. Есть ещё в технике непонятное, там надо клиенту отправить список всех частей, из каких состоит танк (почему сам клиент не может взять их, непонятно). У меня, вроде бы, просто забиты вручную эти данные. Ну и куча всего по скриптам. @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 8 минут назад, Dragon armor сказал: Ведь нечего же? Да, нечего ещё. 9 минут назад, Dragon armor сказал: Есть ещё в технике непонятное, там надо клиенту отправить список всех частей, из каких состоит танк (почему сам клиент не может взять их, непонятно). Это в ангаре, я правильно понял? Клиент ожидает получение данных об ангаре с сервера, какая в нём техника и какие в него комплектующие установлены? @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 (edited) 11 минут назад, DrWeb7_1 сказал: Клиент ожидает получение данных об ангаре с сервера, какая в нём техника и какие в него комплектующие установлены? Вообще обо всей доступной технике. У меня скрины были вот такие У клиента нет нужного списка модулей, в логах игры экзепшн с ошибкой об отсутствующем элементе. И такой объём данных обо всём гоняется постоянно. А потом удивляемся, что это ангар так долго грузится. Это не ангар, это ожидание по сети всех данных. Вон как у меня сейчас сделано. Очень плохо. Функция Get_Vehicle в Client. v_nation = nations.INDICES['germany'] v_id = 190 # 240 F97_ELC_EVEN_90 #190 WE100 И закомментированного полно. Мои прошлые попытки. Кстати, попробуй в эмуле выбрать технику из исследований. Зависнет или что будет? Edited October 2, 2020 by Dragon armor @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 8 минут назад, Dragon armor сказал: Функция Get_Vehicle в Client. Это оно берёт десятеричные ID каждого танка? @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 Только что, DrWeb7_1 сказал: Это оно берёт десятеричные ID каждого танка? Не, сейчас там просто забиты данные. Посмотри, как __vehicle формируется. Надо разбираться, что у меня там. Не помню уже. По-хорошему, надо сделать список доступной техники и формировать для него нужный массив данных. У вафли нет модулей, поэтому там легко всё сделать. Можешь сам поиграться со значениями, добавить другую технику, 268/5 например. Не заменить, а ещё одну добавить. Тебе скинуть, что сервер шлёт клиенту после логина? Почти 700кб данных. О технике, экипаже, имуществе и прочему. cPickle питоновый. @ Quote Link to comment Short link Share on other sites More sharing options...
DrWeb7_1 Posted October 2, 2020 Share Posted October 2, 2020 18 минут назад, Dragon armor сказал: Тебе скинуть, что сервер шлёт клиенту после логина? Если хочешь. Главное, чтобы я смог понять составляющие. @ Quote Link to comment Short link Share on other sites More sharing options...
Dragon armor Posted October 2, 2020 Author Share Posted October 2, 2020 @DrWeb7_1 Сейчас в ЛС скину. 27 минут назад, Dragon armor сказал: Почти 700кб данных. Ошибся порядком. 70 Кб. @ Quote Link to comment Short link Share on other sites More sharing options...
blueferret Posted October 2, 2020 Share Posted October 2, 2020 any major updates? also, i can assist in any (most) c++ things. i've studied up on the language and have a sturdy understanding of it. if possible to get the project, that'd be great. I also have a really really fat book/guide on c++ coding for reference (in this topic) @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.