Перейти к содержанию
Авторизация  
cray

Ап пакетки

Рекомендуемые сообщения

Подскажите пожалуйста при апе пакетки с ИЛ (пв) до ХФа, какие пакеты нужно изменить чтобы дойти до выбора чара хотя бы? Больше ничего не нужно чтобы список чаров увидеть ведь, только оп коды и структуру пакетов?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ладно, тогда другой вопрос, возьмется кто-то сделать вход на ХФ клиенте до выбора чара на ПВ софте, и за сколько? )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, cray сказал:

Ладно, тогда другой вопрос, возьмется кто-то сделать вход на ХФ клиенте до выбора чара на ПВ софте, и за сколько? )

Что у тебя за проблемы? Минимум смотри на протокол версии, и auth. Настрой логирование пакетов какие опкоды летят и какие мешают входу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Evolution сказал:

Что у тебя за проблемы? Минимум смотри на протокол версии, и auth. Настрой логирование пакетов какие опкоды летят и какие мешают входу

Знаний просто ноль, мне бы понять что именно колупать просто. ) Скачал исходники лост вордов, там все очень похожее, даже синтаксис сборки, перенести легко все, ошибок не дает, просто я не понимаю где колупать, меня бы носом ткнуть какие пакеты нужно изменить  по минималке просто. )

Я менял только CharacterSelected и CharSelectInfo, а в ProtocolVersion отпилил проверку на протокол (в гс вывел сообщение с какого протокола войти пытаются), на ИЛе перестает входить в выбор чаров после изменения в пакетах,  но и на ХФе не входит еще. 

А как логировать пакеты и оп коды - на этом мои знания все, увы. ) Я не понимаю куда именно это прикрутить. 

Изменено пользователем cray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, cray сказал:

Знаний просто ноль, мне бы понять что именно колупать просто. ) Скачал исходники лост вордов, там все очень похожее, даже синтаксис сборки, перенести легко все, ошибок не дает, просто я не понимаю где колупать, меня бы носом ткнуть какие пакеты нужно изменить  по минималке просто. )

Я менял только CharacterSelected и CharSelectInfo, а в ProtocolVersion отпилил проверку на протокол (в гс вывел сообщение с какого протокола войти пытаются), на ИЛе перестает входить в выбор чаров после изменения в пакетах,  но и на ХФе не входит еще. 

А как логировать пакеты и оп коды - на этом мои знания все, увы. ) Я не понимаю куда именно это прикрутить. 

GamePacketHandler тут опкоды считываются и выбирается нужное действие. Там наверно у тебя есть case CONNECTION или чет такое. Тут происходит стыковка клиента и сервера (Проверка протокола например)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, Evolution сказал:

GamePacketHandler тут опкоды считываются и выбирается нужное действие. Там наверно у тебя есть case CONNECTION или чет такое. Тут происходит стыковка клиента и сервера (Проверка протокола например)

Изменил оп коды там, теперь при выборе сервера с ХФа шлет протокол в ГС:

Спойлер

image.png.19a95df8e048f78f22cd2ec3ad437cf5.png

273 - это протокол

Но к выбору чаров не пускает все еще. 
Подскажите в тех ли местах я колупаюсь: мне нужно оп коды здесь сверить и изменить как на лостах: 

Спойлер

image.thumb.png.3a1521ffd7fee3d601891c72b91d0a83.png

И в пакетах чар селект/селектед структуры сделать одинаковыми и этого достаточно чтобы в меню выбора чара войти, или что-то упускаю? 
 

Спойлер

image.thumb.png.5b4e56c3e848c0ff86d46b9f30129bf7.png

 

 

Изменено пользователем cray

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
36 минут назад, Evolution сказал:

GamePacketHandler тут опкоды считываются и выбирается нужное действие. Там наверно у тебя есть case CONNECTION или чет такое. Тут происходит стыковка клиента и сервера (Проверка протокола например)

Кажется вышло прикрутить вывод оп кодов в консоль:

Спойлер

image.png.70fc08cd8fe5a6f8d585dd2eee2b6a52.png

Теперь при входе с ИЛа и ХФа такое шлет и дальше не двигается: 
 

Спойлер

image.png.61bf1a6fc449872e1bfc9f1fccdd4101.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну это ты чисто клиентские коды выводишь, а для полноты картины еще и то что сервер шлет выводить стоит

для этого можно вывод в sendPacket класса GameClient добавить, как-то примерно так

	public void sendPacket(L2GameServerPacket gsp)
	{
		if (isConnected())
		{
			if (DevConfig.SHOW_SERVER_PACKET_NAME && gsp != null && !DevConfig.HIDE_SERVER_PACKET_NAME.contains(gsp.getClass().getSimpleName()))
				_log.info(getLogin() + " <-- [S] " + gsp.getClass().getSimpleName());

			getConnection().sendPacket(gsp);
		}
	}

а для клиентских, более информативное что-то типа такого, в конце handlePacket класса GamePacketHandler, перед return msg;

		if (DevConfig.SHOW_CLIENT_PACKET_NAME)
		{
			if (msg != null)
			{
				if (!DevConfig.HIDE_CLIENT_PACKET_NAME.contains(msg.getClass().getSimpleName()))
				{
					_log.info(client.getLogin() + " --> [C] " + msg.getClass().getSimpleName());

					if (DevConfig.SHOW_CLIENT_PACKET_DUMP && !DevConfig.SHOW_ONLY_UNKNOWN_PACKET_DUMP && buf.remaining() > 0)
						_log.info("Data [" + buf.remaining() + "]:\n\n" + Util.printData(buf.asReadOnlyBuffer()));
				}
			}
			else if (name != null)
			{
				if (!DevConfig.HIDE_CLIENT_PACKET_NAME.contains(name))
				{
					_log.info(client.getLogin() + " --> [C] " + name + " [not implemented]");

					if (DevConfig.SHOW_CLIENT_PACKET_DUMP && !DevConfig.SHOW_ONLY_UNKNOWN_PACKET_DUMP && buf.remaining() > 0)
						_log.info("Data [" + buf.remaining() + "]:\n\n" + Util.printData(buf.asReadOnlyBuffer()));
				}
			}
		}

 

Изменено пользователем Gaikotsu
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Gaikotsu сказал:

ну это ты чисто клиентские коды выводишь, а для полноты картины еще и то что сервер шлет выводить стоит

Прикрутил пока что коряво и без вывода имени, глянуть на чем стопорится, но так и не понял. ) 
 

Спойлер

image.png.ea716b92efbef6d8d32f048526540224.png

Вот так только доходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В итоге будет у тебя в логе что-то типа такого выводить при входе и далее:

Спойлер

[15:36:55]  INFO null --> [C] ProtocolVersion
[15:36:55]  INFO null <-- [S] KeyPacket
[15:36:55]  INFO null --> [C] AuthLogin
[15:37:12]  INFO test --> [C] RequestUserBanInfo
[15:37:19]  INFO test --> [C] CharacterSelected
[15:37:20]  INFO test <-- [S] CharSelected
[15:37:20]  INFO test <-- [S] SkillList
[15:37:20]  INFO test <-- [S] SkillList
[15:37:37]  INFO test --> [C] RequestManorList
[15:37:37]  INFO test <-- [S] ExSendManorList
[15:37:37]  INFO test --> [C] RequestBR_NewIConCashBtnWnd
[15:37:37]  INFO test <-- [S] ExBR_NewIConCashBtnWnd
[15:37:37]  INFO test --> [C] RequestBookMarkSlotInfo
[15:37:37]  INFO test <-- [S] ExGetBookMarkInfo
[15:37:37]  INFO test --> [C] RequestKeyMapping
[15:37:37]  INFO test <-- [S] ExUISetting
[15:37:37]  INFO test --> [C] RequestTodoList
[15:37:37]  INFO test <-- [S] ExOneDayReceiveRewardList
[15:37:39]  INFO test --> [C] EnterWorld
[15:37:39]  INFO test <-- [S] ExSetCompassZoneCode
[15:37:39]  INFO test <-- [S] ExBR_PremiumState
[15:37:39]  INFO test <-- [S] SendMacroList
[15:37:39]  INFO test <-- [S] HennaInfo
[15:37:39]  INFO test <-- [S] ItemList
[15:37:39]  INFO test <-- [S] ExQuestItemList
[15:37:39]  INFO test <-- [S] ShortCutInit
[15:37:39]  INFO test <-- [S] SkillCoolTime
[15:37:39]  INFO test <-- [S] ExVitalityEffectInfo
[15:37:39]  INFO test <-- [S] TutorialShowQuestionMark
[15:37:39]  INFO test <-- [S] PlaySound
[15:37:39]  INFO test <-- [S] ExPledgeCount
[15:37:39]  INFO test <-- [S] PledgeShowMemberListAll
[15:37:39]  INFO test <-- [S] PledgeShowMemberListAll
[15:37:39]  INFO test <-- [S] PledgeShowInfoUpdate
[15:37:39]  INFO test <-- [S] PledgeSkillList
[15:37:39]  INFO test <-- [S] UserInfo
[15:37:39]  INFO test <-- [S] ExUserInfoEquipSlot
[15:37:39]  INFO test <-- [S] ExUserInfoAbnormalVisualEffect
[15:37:39]  INFO test <-- [S] ExRotation
[15:37:39]  INFO test <-- [S] ExAutoSoulShot
[15:37:39]  INFO test <-- [S] ExAutoSoulShot
[15:37:39]  INFO test <-- [S] ExAutoSoulShot
[15:37:39]  INFO test <-- [S] ExAutoSoulShot
[15:37:39]  INFO test <-- [S] ExUserInfoAbnormalVisualEffect
[15:37:39]  INFO test <-- [S] ExStorageMaxCount
[15:37:39]  INFO test <-- [S] ExVoteSystemInfo
[15:37:39]  INFO test <-- [S] ExSubjobInfo
[15:37:39]  INFO test <-- [S] ExUserInfoInvenWeight
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExCastleState
[15:37:39]  INFO test <-- [S] ExUnReadMailCount
[15:37:39]  INFO test <-- [S] MagicSkillUse
[15:37:39]  INFO test <-- [S] ExMonsterBook
[15:37:39]  INFO test <-- [S] ExBeautyItemList
[15:37:39]  INFO test <-- [S] ExAdenaInvenCount
[15:37:39]  INFO test <-- [S] ExAcquireAPSkillList
[15:37:39]  INFO test <-- [S] ExConnectedTimeAndGettableReward
[15:37:39]  INFO test <-- [S] ExWorldChatCnt
[15:37:39]  INFO test <-- [S] UserInfo
[15:37:39]  INFO test <-- [S] AbnormalStatusUpdate
[15:37:39]  INFO test <-- [S] ExUserInfoEquipSlot
[15:37:39]  INFO test <-- [S] SkillList
[15:37:39]  INFO test <-- [S] MagicSkillLaunched
[15:37:39]  INFO test <-- [S] ExUserInfoAbnormalVisualEffect
[15:37:39]  INFO test <-- [S] AbnormalStatusUpdate
[15:37:40]  INFO test --> [C] RequestPledgeInfo
[15:37:40]  INFO test <-- [S] PledgeInfo
[15:37:42]  INFO test --> [C] RequestExSeedPhase
[15:37:42]  INFO test <-- [S] ExShowSeedMapInfo

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу поднять тебе пакетку, но это может занять некоторое время, смотри сам. Потом еще ловить баги придется и править в любом случае.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Rogue сказал:

Могу поднять тебе пакетку, но это может занять некоторое время, смотри сам. Потом еще ловить баги придется и править в любом случае.

У меня больше цель стоит разобраться как самому делать, ибо понимаю что без багов не обойдется, а потом захочется что-то из контента хфа, например - опять правки, и вечно дергать исполнителя не очень вариант. ) Но на всякий случай, сколько будет стоить ап только нужных пакетов до выбора чара / фул ап пакетки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, cray сказал:

У меня больше цель стоит разобраться как самому делать, ибо понимаю что без багов не обойдется, а потом захочется что-то из контента хфа, например - опять правки, и вечно дергать исполнителя не очень вариант. ) Но на всякий случай, сколько будет стоить ап только нужных пакетов до выбора чара / фул ап пакетки?

До выбора чара там полтора пакета поменять. Если с ИЛа и ХФ то там надо в пакете логин сервера что-то сначала поменять, а потом чар лист с сервера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Rogue сказал:

До выбора чара там полтора пакета поменять. Если с ИЛа и ХФ то там надо в пакете логин сервера что-то сначала поменять, а потом чар лист с сервера.

Ага, логин еще надо, вот что я упускаю походу, там я не трогал. ) А оп коды тоже ведь надо менять сразу, без этого никак? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, cray сказал:

Ага, логин еще надо, вот что я упускаю походу, там я не трогал. ) А оп коды тоже ведь надо менять сразу, без этого никак? 

Не логин, там все норм. Меняй Keypacket

Примерно так должен выглядить.

package net.sf.l2j.gameserver.network.serverpackets;

public final class KeyPacket extends L2GameServerPacket
{
	private final byte[] _key;
	
	public KeyPacket(byte[] key)
	{
		_key = key;
	}
	
	@Override
	public void writeImpl()
	{
		writeC(0x2e);
		writeC(1); //0 - wrong protocol, 1 - protocol ok
		for (int i = 0; i < 8; i++)
		{
			writeC(_key[i]); // key
		}
		writeD(0x01);
		writeD(0x01); // server id
		writeC(0x01);
		writeD(0x00); // obfuscation key
	}
}

 

  • Like 1
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Rogue сказал:

Не логин, там все норм. Меняй Keypacket

Во, как раз как Гайкотсу сказал вывел пакеты (ну как не так же, а как умею :D), и на нем как раз стопорнулось все:
image.png.4275e6b806168fb1a5ddc992853af195.png

Буду пробовать что-то. )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вклинюсь в тему, с Вашего позволения. ) Подскажите, пожалуйста, в чем заключается разница между 267 протоколом и более новым (206 если не ошибаюсь), я таким же занимаюсь, собрал себе хф, чтобы убедиться что он рабочий хотя бы, и на 267 протоколе уже не пускает, это протоколы настроены криво именно, или пакеты где-то минимально отличаются тоже? Мне критично именно до 267 протокола апнуть.

Изменено пользователем Rolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Rolo сказал:

Вклинюсь в тему, с Вашего позволения. ) Подскажите, пожалуйста, в чем заключается разница между 267 протоколом и более новым (206 если не ошибаюсь), я таким же занимаюсь, собрал себе хф, чтобы убедиться что он рабочий хотя бы, и на 267 протоколе уже не пускает, это протоколы настроены криво именно, или пакеты где-то минимально отличаются тоже? 

Не помню такого протокола. Есть 267, 268, 273. 273 это последний хф.

По пакетам они все одинаковые по сути.

Изменено пользователем Rogue
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Rogue сказал:

Не помню такого протокола. Есть 267, 268, 273. 273 это последний хф.

Черт, что же я за франкенштейна там собрал? :lol: Спасибо большое за ответ, сэкономили много времени. )) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...