Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 03.07.2015, 07:09   #31
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

это дааа целая история с этими "слепленными" пакетами
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 03.07.2015, 07:38   #32
Пользователь
 
Регистрация: 19.08.2014
Сообщений: 58
Сказал Спасибо: 12
Имеет 0 спасибок в 0 сообщенях
cvillian пока неопределено
По умолчанию

млин не простая штука получается) Если пришло пол пакета, это не значит что в следующий раз прийдёт вторая, может прийти половина предыдущего
и ещё кусок)
cvillian вне форума   Ответить с цитированием
Старый 03.07.2015, 10:47   #33
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Я когда то долго вылавливал периодические краши бота, оказалось иногда принимался только 1 байт размера пакета, поэтому это нужно тоже проверять и ждать следующего байта.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 03.07.2015, 12:05   #34
Пользователь
 
Регистрация: 19.08.2014
Сообщений: 58
Сказал Спасибо: 12
Имеет 0 спасибок в 0 сообщенях
cvillian пока неопределено
По умолчанию

а пакеты могу не по порядку идти? т.е. я жду половину одного пакета, а вместо этого приходить другой, и только после него нужная мне часть
cvillian вне форума   Ответить с цитированием
Старый 03.07.2015, 13:34   #35
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Цитата:
Сообщение от cvillian Посмотреть сообщение
а пакеты могу не по порядку идти? т.е. я жду половину одного пакета, а вместо этого приходить другой, и только после него нужная мне часть
Все по порядку.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 03.07.2015, 13:37   #36
Пользователь
 
Регистрация: 19.08.2014
Сообщений: 58
Сказал Спасибо: 12
Имеет 0 спасибок в 0 сообщенях
cvillian пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Все по порядку.
Ну хоть это радует, а то я на allcheats начитался ужасов)
cvillian вне форума   Ответить с цитированием
Старый 03.07.2015, 14:37   #37
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Пакеты приходят кусками не потому что так их шлет сервер, а потому что так работает протокол TCP.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 20.07.2015, 15:07   #38
Пользователь
 
Регистрация: 19.08.2014
Сообщений: 58
Сказал Спасибо: 12
Имеет 0 спасибок в 0 сообщенях
cvillian пока неопределено
По умолчанию

У меня похоже не правильный алгоритм кодировки пакета. После того как пакет кодируется и отправляется, в WP PPC я вижу что каждый 16-й байт =
1А:

Код:
[106]           C>s             0ms.            13:57:15 .481      20.07.15
-------------------------------------------------------------------------------
 TType: LA2     Server: GS3     Parse: 2 (auto)    EnCode: DT2 KT4 (auto)
------- 0  1  2  3  4  5  6  7 -  8  9  A  B  C  D  E  F    -------------------
000000 3F 00 49 70 00 72 00 69 | 00 76 1A 65 00 74 00 20     ?.Ip.r.i.v.e.t. 
000010 00 70 00 72 00 69 00 76 | 00 65 1A 74 00 20 00 70     .p.r.i.v.e.t. .p
000020 00 72 00 69 00 76 00 65 | 00 74 1A 20 00 70 00 72     .r.i.v.e.t. .p.r
000030 00 69 00 76 00 65 00 74 | 00 00 1A 00 00 00 00        .i.v.e.t.......
-------------------------------------------------------------------------------
LA2:      "Say2"                             size: 63     prot: 152  $098
Addr:  Size:    Type:         Description:     Value:
0000     2   word          psz               63         | $003F
0002     1   byte          ID                73         | $49 'I'
0003    58   WideString    Text              "pri?et priv?t prive? privet?"
003D     4   integer??     Type              ALL  ($00000000)
Мог бы ктонибуть подсказать в чём ошибка?

Код:
procedure GS_Encode(var buff: AnsiString; var key: AnsiString);
var
  i, j, i1, sz, sk : integer;
  val1: integer;
begin
  sz := length(buff);
  sk := length(key);
  if sk < 1 then exit;
  i1 := 0; j := 1;
  for i := 1 to sz do begin
    buff[i] := AnsiChar(ord(buff[i]) xor (ord(key[j])) xor i1);
    i1 := (ord(buff[i]));
    Inc(j,1);
    if j > 16 then j := 1;
  end;

  Move(key[9], val1, 8);
  val1:= val1 + sz - 2;
  Move(val1, key[9], 8);
end;
Алгоритм взял из демо скриптов в wp ppc

Последний раз редактировалось cvillian, 20.07.2015 в 15:38.
cvillian вне форума   Ответить с цитированием
Старый 20.07.2015, 16:00   #39
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от cvillian Посмотреть сообщение
Код:
  Move(key[9], val1, 8);
  val1:= val1 + sz - 2;
  Move(val1, key[9], 8);
Как минимум нужно либо 8 на 4 заменить, либо val1 объявить как Int64 (скорей всего первый вариант).
Проверь что у тебя ключ 16 символов.
Мне непонятно зачем из sz двойка вычитается, если в GS_Encode приходят чистые данные (без длины пакета), то двойку вычитать не нужно, если в функцию приходит весь пакет вместе с длиной, то длину (первые 2 байта) кодировать не нужно.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 20.07.2015, 18:17   #40
Пользователь
 
Регистрация: 19.08.2014
Сообщений: 58
Сказал Спасибо: 12
Имеет 0 спасибок в 0 сообщенях
cvillian пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Мне непонятно зачем из sz двойка вычитается, если в GS_Encode приходят чистые данные (без длины пакета), то двойку вычитать не нужно.
Да точно Я же пример брал где алгоритм был для всего пакета с длиной и не учёл. Большое спасибо
cvillian вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:18.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!