Вообщем ни один проект сейчас не может сделать эту авторизацию. Тоска
Сервер просто не будет отвечать на твои запросы авторизации. Лично поверял. На счёт бана не знаю.
Если там к login+пасс еще что-то добавляется, а потом уже вычисляется хеш, можно до конца жизни искать. Ну я думаю то что врятле. Как мне кажется они сменили только кодировку. Хотя кто копается в элементе я думаю может это проверить.
Вообщем все мы знаем и умеем пилить коннект к серверу пв. Было очень много примеров на том же шарпе разжовано и разобрано. Теперь на офе мы имеем версию 1.5.5 и мы имеем новый хэш пароля. Как ни странно, но да новый хэш они ввели, я этому был удивлен. Суть вообщем осталась та же самая как приконнектиться к офу с новым хэшем. Вообщем я перепробовал очень много вариантов и прошу вас о помощи Под спойлером я все выложу логин пароль ключ и зашифрованный пароль который должен получиться Логин: 151170420 Пароль: 123456Q Ключ которым зашифрован пароль 3F 00 00 C0 00 00 00 00 4A 54 EF CF A5 2B 04 0F Hash byte[] 39 61 63 64 36 64 34 34 32 39 32 64 62 65 65 39 37 33 32 66 34 31 63 30 66 35 30 31 62 33 38 62 35 37 30 64 32 61 66 38 65 61 63 33 63 61 37 65 31 38 33 35 36 34 31 66 30 36 35 38 36 39 37 62 Hash hex (зашифрованный пароль в пакете 0x03) 9acd6d44292dbee9732f41c0f501b38b570d2af8eac3ca7e1835641f0658697b Пароль загоняется вместе ключем. Вид пароля login + pass. Далее можете ставиить эксперементы чтобы получить такой хэш. Вот сам код которым получал хэш. Из подсказок пароль был вида sha265. var hmacsha256 = new HMACSHA256(key); hmacsha256.ComputeHash(Encoding.Default.GetBytes(login + pass)); string k = ""; foreach (byte test in hmacsha256.Hash) { k += test.ToString("X2"); } Пока у меня дела плохи и сижу и думаю как и что они там намудрили чтобы получить такой хэш. Ваши варианты друзья...
В новых версиях игры например на офе теперь вход на сервер только через Игровой центр. Если есть у кого скиньте профикценый элемент чтобы заходить в игру через него. И есть ли вообще у кого нибудь такой...
Короче в топку его
Тык - Совпадение? Не думаю А по теме, все кто хочет купить сервер с защитой я советую брать его: сервис вкурске. Брал у них лично все радует. Сервер мы можете скачать в интернете, все будут одинаковы. P.s Не заглянул под спойлер сразу ;)
Из названия мы удаляем PROTOCOL_ получаем название которое должно быть Ты издеваешься? На вики всё есть. Что тебе ещё надо? --- добавлено: 9 июл 2016 в 10:54 --- Но вот вопрос у пакета опкод допустим 0x02 <PacketInfo Type="0x02" Direction="C2S" Container="False" Name="CMKey"> <PacketField Type="Byte" Name="KeyLen" /> <PacketField Type="Bytes" Length="KeyLen.Value" Name="Key" /> <PacketField Type="Byte" Name="Force" /> </PacketInfo> Да зачем мне этот пакет. У меня эти все уже есть. Я говорю про пакеты 0х00 и 0х22. У них тоже должна быть структура как бы чтобы понимать что пришло и что отвечать.
Hardx, у тебя мне понравилось больше всего. Если приступлю то точно буду делать все на xml
Вновь взялся за работу. Спасибо что помог на счет ptype CallID. Вообщем там выводится название пакета и его опкод. Из названия мы удаляем PROTOCOL_ получаем название которое должно быть Ну и опкод самого пакета конвертим в инт к примеру и выводим "X" и получаем что то типа 0x48 так уже что то можно разобрать через пандору к примеру. Естественно после того как ты узнаем в пандоре опкод в нашем файле ищем этот покод, получаем наше название пакета и смотрим стректуру. Но все же остается вопрос: как тащить так же структуру из пакета 0x22?
Делают так, потому что это удобно. Для добавления новых значений достаточно дописать несколько строк в файлик. А для чтения структуры создаёшь саму структуру или же класс(зависит от ЯП) и в каждое поле вычитываешь данные. Кто как порекомендует сделать? Просто если делать структурами то придётся ещё и каждый раз писать новое чтение структуры и из будет достаточно, а если делать файлом то это то что как бы есть у всех и читаешь только 1 раз и больше не паришься.
Вот в чем вопрос. Меня интересует как у кого организовано чтение и запись структуры допустим элемента. Многие редакторы все делают как у Sledit ну сколько я видел, но читать так как то мне не хочется. Там есть файлик конфига читается из него итд. Вообщем как можно сделать по другому так же для многих элементов?
что на них нужно отвечать и что от тебя вообще хочет клиент Насколько помню, в ответ на EnterWorld идет контейнер с фиксированным набором пакетов. Инфа о персонаже, персы/нпс/ресы рядом, статус пис зоны, время пк, конфиг и время сервера, замок безопасности. Потом клиент шлет еще один запрос, и в ответном контейнере идут инвентари, квесты, деньги, питомцы, список телепортов, репа, и еще куча мелких пакетов. Причем чем выше версия, тем больше необходимых пакетов для входа в мир. На новых клиентах там еще с десяток обязательных пакетов фракций, перерождения, и прочей ерунды. Понять что конкретно нужно ответить на конкретной версии клиента - легко и просто, поднять собственный сервак, и перехватить трафик с помощью Pandora's Box. Это я уже понял, но как понять в каком пакете что находится? Я вот про это и говорил с самого начала. Сервер отвечает пакетом 0x00 в котором есть и другие пакеты которые запакоаны в отдельные контейнеры. И я говорил про то как тащить пакет, допустим PlayerMainInfo или PlayerFullInfo это пакеты 0x26 и 0x32 которые потом заапкованы в 0x00. Если ты говоришь то что все так легко и просто то можешь взять пакет и попробовать прикинуть что там передается. Я не так много понял что передается в 1 пакете, но однозначно продвижение есть. Даже с существующим сервером понять немного сложно, поэтому я и говорил про то как тащить именно эти структуры. Один товарищ мне сказал что они в гс, и обрабатывает только он их. Но я там чисто эти структуры не нашел.
Все упакованные в 0x00 пакеты обрабатываются ядром. "Что хочет клиент мать его" - это хороший вопрос, для ответа на него нужно потратить достаточно времени, исследуя все пакеты. В клиенте всё асинхронное, да и названий функций нет. Могу посоветовать покопаться в ядре, там хоть что-то есть В самом gs. Ну а там тоже проблема я думаю будет с названием функций и не вытащить опкоды пакетов. Получается замкнутый круг и только приходится полагаться только на себя немножко магии и везения.
Все знают что можно тащить структуры из гделивети итд, но вот вопрос. У нас есть пакет EnterWorld, который нам присылает клиент, потом мы на него отвечаем связкой пакетов упакованных в 0x00/ Суть в том что не всегда поймешь что на них нужно отвечать и что от тебя вообще хочет клиент мать его, может как то можно это узнать с помощью клиента, например вытащить структуру с клиента, если это вообще возможно, или какие нибудь другие сопобы понять как отвечать на EnterWorld и ему подобные.
Наизусть к сожалению не помню, нужно смотреть по пандоре... Пандора конечно классная штука но есть еще что нибудь типа нее? Например поступает пакет 0х123 от клиента а сервер отвечает на него 0х124 и я уже сам выбирал нужно ли мне на него ответить или нет, хочу хоть так понять на какие отвечать нужно для того чтобы зайти в мир. Такой штуки к сожалению нет) Так и приходится гадать, на что нужно отвечать, а на что нет. Оказывается я просто не отправлял конфиг интерфейса..... Блять! Кстате кто подскажет зачем нужен dyn_task и что будет если его не грузить?
Буфер ты уменьшил) По умолчанию размер буферов(их 2) 8 кб. На счёт того, что не доходит нужно смотреть трафик, отправляются ли вообще эти пакеты. Ну и помни, что не всякий пакет можно поместить в контейнер. Понял, спасибо. Слушай а кроме пакетов EnterWorld какие еще должны быть отправлены чтобы просто войти в сам мир? Я отправляю пакеты лист друзей инвентарь итдитп но мне все кажется что проблема в этом пакете. Наизусть к сожалению не помню, нужно смотреть по пандоре... Пандора конечно классная штука но есть еще что нибудь типа нее? Например поступает пакет 0х123 от клиента а сервер отвечает на него 0х124 и я уже сам выбирал нужно ли мне на него ответить или нет, хочу хоть так понять на какие отвечать нужно для того чтобы зайти в мир.
Пакет не большой, а склееный. Есть такое понятие в протоколе как контейнеры. Они бывают серверные и клиентские, 0х00 и 0х22 соответственно. Контейнер может содержать несколько пакетов. При отправке можно затолкать 1-2 пакета в контейнер и он не будет большого размера. А вобще протокол TCP потоковый, и ему по барабану каков размер пакета, в сокет можно затолкать большой пакет просто увеличив буфер сокета. С буфером понятно, спасибо. Я беру пакет с пандоры сначала первый потом второй пакую их в контейнер 0x00 и отправляю по очереди, но увы ничего не доходит. В чем тут еще может быть проблема? Ах да буффер увеличил до 1024б. Буфер ты уменьшил) По умолчанию размер буферов(их 2) 8 кб. На счёт того, что не доходит нужно смотреть трафик, отправляются ли вообще эти пакеты. Ну и помни, что не всякий пакет можно поместить в контейнер. Понял, спасибо. Слушай а кроме пакетов EnterWorld какие еще должны быть отправлены чтобы просто войти в сам мир? Я отправляю пакеты лист друзей инвентарь итдитп но мне все кажется что проблема в этом пакете.
Пакет не большой, а склееный. Есть такое понятие в протоколе как контейнеры. Они бывают серверные и клиентские, 0х00 и 0х22 соответственно. Контейнер может содержать несколько пакетов. При отправке можно затолкать 1-2 пакета в контейнер и он не будет большого размера. А вобще протокол TCP потоковый, и ему по барабану каков размер пакета, в сокет можно затолкать большой пакет просто увеличив буфер сокета. С буфером понятно, спасибо. Я беру пакет с пандоры сначала первый потом второй пакую их в контейнер 0x00 и отправляю по очереди, но увы ничего не доходит. В чем тут еще может быть проблема? Ах да буффер увеличил до 1024б.
В 6A при типе 9, передается dyn_tasks.data, распарсить в пандоре, увы нереально... Ну не суть тогда, как просто передать этот пакет чтобы пустило в мир? Я его отправить не могу потому что он большой.
Имена участников (разделяйте запятой).