Показать сообщение отдельно
Старый 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 вне форума   Ответить с цитированием