Разработка Раздел для совместной разработки/доработки программы
16.02.2012, 09:58
#71
Пользователь
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Цитата:
Сообщение от
Kilatif
Код:
FGIntMontgomeryModExp(d,e,m,r); //выполняется операция r = (d^e) mod m
r = (d возводим в степень e) берем по модулю m ?
у меня почему-то m отрицательное получается....
Последний раз редактировалось Tin-moon, 16.02.2012 в 10:17 .
16.02.2012, 13:35
#72
Местный
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Tin-moon , значение m ты задаешь сам. Как оно у тебя отрицательное получиться оО?
16.02.2012, 17:41
#73
Пользователь
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Цитата:
Сообщение от
Kilatif
Tin-moon , значение m ты задаешь сам. Как оно у тебя отрицательное получиться оО?
Возникла проблема. Отправляю пакет RequestAuthLogin. Сервер не ругается, создает новый акаунт, но имя просто бредовое. В чем может быть проблема?
Нашел ошибку не дописал 1 байт.
Полоностью переписал функционал того что было на делфи.
Что теперь делать??
Последний раз редактировалось Tin-moon, 16.02.2012 в 19:17 .
16.02.2012, 19:46
#74
Местный
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Tin-moon , тебе в конечном итоге должен был придти пакет PlayOk. Когда он пришел, берешь оттуда нужные данные, закрываешь соединение с логин сервером и открываешь соединение с GameServer-ом, к которому тебе нужно подключиться. IP и порты GameServer-ов тебе приходили в пакете ServerList. Какие пакеты тебе нужно отсылать и принимать после установки соединения, можешь посмотреть, зайдя в игру с включенным l2phx. Нужные тебе пакеты для входа в мир начинаются с ProtocolVersion и заканчиваются EnterWorld.
Что касается шифрации.
Первые 2 пакета не шифруются (ProtocolVersion(Client->GS) и KeyInit(GS->Client)).
Пакеты после KeyInit шифруются xor-шифрованием со сменой ключа. Первый ключ берется в пакете KeyInit, остальные берутся из следующих пакетов.
Во вложении класс для работы с этим xor-шифрованием
За это сообщение Kilatif нажился 2 спасибками от:
17.02.2012, 03:59
#75
Новичок
Регистрация: 12.02.2012
Сообщений: 27
Сказал Спасибо: 8
Имеет 0 спасибок в 0 сообщенях
Ребят, помогите плиз.
Есть такой пакет:
PHP код:
BA00B7E270A314DAB19B1CCBE15C22E35AF2438045B46F40DB4A756BF36A3EB15E04930CA14D91DCACB6A24DFD43D90D04F78E1654B2AD65D465A29361595DEB6A9251E4A6CC1094130153F5D40DFDD78272C3599A58E3F37B95427A70C55B9A36BC44940D9CB55758129F7DFA76B2499DC2D90CB095E0E5BB7B4B2B973E3C1846B6312A5D98A335CBD2FB062EFD0F23F353C2635A0AD90013EFA501C4AB2BF722F88E39D45CB8AF248E205D535FAB6796D6F5D7BD34B627606F
Можете выложить пакет который получается после блоуфиша? и после ксора? и рса ключ? а то не могу понять правильно ли я его продекодил в плане блоуфиша.
Чтоб не быть голословным, у меня результат после обработки блоуфиша такой:
PHP код:
BA0000B8EEC4115B240C09BA250D17FB84379854F1BF0EFA358A43EB1FB630F204CA3968F13194D55F70E845A57E1A5CB40320A45053EFA18ADE3EF0E955B0EDE68EE1E64BA4F66026523188544C57A49E8B9CCA09D9615561ED11C151AD83B2CBAE56DBB8BAEF5AD04D1A36F93B4F63918599D2F3E643976242C6A21475D4A7FA908F305FD924DA0AD1719D05A8FC33B1FA3BD0554B74102419ED19CDFCEA3C2F2E01232416F807393DD74C1D63A9CFDD58143EDA74385F1A97
Правильно ли у меня получилось?
И какой тогда тут будет ксор ключ? 385F1A97? или 143EDA74?
Последний раз редактировалось ErgoZ, 17.02.2012 в 06:30 .
Причина: опечатался в пакете. теперь вроде правильно. гляньте плиз
17.02.2012, 12:16
#76
Местный
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
ErgoZ , судя по тому, что первый байт (без учета размера) пакета равен нулю (тип пакета Init), блоуфишем ты расшифровал правильно. Ключом будет 143EDA74. А вообще ф-ю AntiXor я приводил ранее.
За это сообщение Kilatif нажился спасибкой от:
17.02.2012, 14:41
#77
Новичок
Регистрация: 12.02.2012
Сообщений: 27
Сказал Спасибо: 8
Имеет 0 спасибок в 0 сообщенях
Походу дела получилось, в итоге после ксора у меня такой вот пакетик:
PHP код:
BA0000B8EEC41821C60000E1A1226F506A8492FE03C633AD2338B3DAE403E7E5551BB53D54BE4C68FDF20E66097FFA3F04CD753AD66ACD11D2734EAD4CDC6FC8A1D28B799675C7E8EDE900D4C5C933ED66A3FDE128FA9015B077904C6A0BB11B6C14B39D088105AF388B592988BE262E5E18D84792A481C991280AFA7105ADB74F586B155588EB5EF146DD4E95DD29FC9CC37720B6AD97F7E0BD071D242D151EF33FA9DCECEA2F4C3A208000CF2BBDF1072C143EDA74385F1A97
особенно радуют 5 и 6 байты без учёта байт размера - 21c6 )))
Добавлено через 35 минут
Вот такой вот итог работы за 2 дня
Код:
02-17 09:36:33.949: I/System.out(1518): Try connect to /127.0.0.1:2106
02-17 09:36:34.102: I/System.out(1518): Connected to 127.0.0.1/127.0.0.1:2106
02-17 09:36:34.173: I/System.out(1518) Starting packet: BA00C8457ADCC06D468FE117AF6AFE3D078271A1104D7CB75F38DA8D320AF78F77E28000DDC4E09026D4DF9ABCB8183925BBA89EEC6FADB5D575748AAD6F75E5D4C9114C0BF5E2E12A49EF8164E641C4C7FF92B57F017C234A8ABF92DE4267248FF4B50781967D82A7DFC13CC5E3D831EDFFD0E58D7D485ACC4F577B0DA6204713EA386ADA4FB582F466AB60A65001874AF601461A483EABCCF42672865CF1E0F88CE8795FE942778F525E281A0DD520E1428540490A461B0D63
02-17 09:36:34.179: I/System.out(1518) Blowfish decrypted packet: BA000086149F073BE6F6281A200E28470CFD8316502FFD08ECAE45DE043C611FFF37CF149BAF38B655F44910CCF5A1EA8AA312A937073194FD4D00A72E7E46033588DD1A5513D1A678D34001B1066BFBCBD1C6B74091BA2623D85A8BA1497CAA5563DF49E6021C5735D26F7A0BA49025A797D2171BB2062B592BFB494F3CFA9B5C17CD194E9D67E963C038945956F22AF58C25D7A9507E19E006F712014B10BEBD2CD2D09A8BCF26FFFA7296C793C8BE322D836B158BA1771982
02-17 09:36:34.179: W/System.err(1518): Xor Key: 836B158B
02-17 09:36:34.179: I/System.out(1518): DeXored packet: 0086149F2F21C60000A1D34C574EDCDFFEEE43864039EF8264D7EBCAA00B88601781563CF159EE38D6F6B99453825BA1DD22FB3231CD183CC2A725067BE59F7A72BF7D3C915928D6A929FA29D569745F8C925F29FC5142108E2EF4D655120862DB7AD5308D92C371FF5F6AD042D0B3F928F123A70F6210CF7D22832E3F7C698A143FADA24F65546E8A4E95DD29FC9CC37720B6AD97F7E0BD07B39268BE0ED7551F321C5D21B33C974A002A774BD527A6836B158BA1771982
02-17 09:36:34.179: W/System.err(1518): Protocol: 21C6
02-17 09:36:34.189: W/System.err(1518): SessionID: 86149F2F
02-17 09:36:34.189: W/System.err(1518): RSAKey: A1D34C574EDCDFFEEE43864039EF8264D7EBCAA00B88601781563CF159EE38D6F6B99453825BA1DD22FB3231CD183CC2A725067BE59F7A72BF7D3C915928D6A929FA29D569745F8C925F29FC5142108E2EF4D655120862DB7AD5308D92C371FF5F6AD042D0B3F928F123A70F6210CF7D22832E3F7C698A143FADA24F65546E8A
02-17 09:36:34.199: W/System.err(1518): NewBFKey: B39268BE0ED7551F321C5D21B33C974A
Последний раз редактировалось ErgoZ, 17.02.2012 в 14:43 .
Причина: Добавлено сообщение
17.02.2012, 23:08
#78
Пользователь
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Цитата:
Сообщение от
Kilatif
закрываешь соединение с логин сервером и открываешь соединение с GameServer-ом, к которому тебе нужно подключиться.
Возник вопрос по реализации логики открытия и закрытия сокетов.
Суть:
Написал абстрактный класс для работы с сокетом (с общей логикой) унаследованный от потока. Создал 2 класса для реализации Логики работы с логин сервером и для работы с гейм сервером. Логин часть отрабатывает, а запустить гейм часть не получается.... Или ошибки или закрывается полностью приложение....
Мб какой совет есть (по структуре приложения).
И ще возник вопрос:
ProtocolVersion - пакет такой
Код:
07 01 // Длина
00 // Тип
XX XX XX XX // ProtocolVersion
[далее идет массив-константа, который хз от чего зависит, у меня он такой:]
09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02
55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53
00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04
54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56
56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04
07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05
52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02
04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51
55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05
08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07
53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02
53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01
05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06
01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01
04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D
01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06
или
Код:
Назначение: передает версию протокола используемого клиентом серверу
Формат:
00
XX XX XX XX // Версия протокола
Последний раз редактировалось Tin-moon, 17.02.2012 в 23:16 .
18.02.2012, 01:47
#79
Новичок
Регистрация: 12.02.2012
Сообщений: 27
Сказал Спасибо: 8
Имеет 0 спасибок в 0 сообщенях
tin-moon а ты на яве пишешь? или на другом языке?
18.02.2012, 03:42
#80
Местный
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Tin-moon , у меня с сокетами тоже не все впорядке, поэтому врятли тебе в этом помогу) Что касается ProtocolVersion. Я посылаю первый вариант, т.е. с константой, просто потому что так делает клиент, хотя прокатывает и второй.
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 21:58 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!