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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.12.2008, 14:54   #31
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

этот код
delphi Код:
Client.Socket.ReceiveBuf(size, 2); SetLength(pck, size-2); Client.Socket.ReceiveBuf(pck[1], size-2); mes.Lines.Add(StringToHex(pck,' '));
исправь на
delphi Код:
if Client.WaitForData(1000) then begin     Client.ReceiveBuf(size, 2);     SetLength(pck, size);     Client.ReceiveBuf(pck[1], size);     mes.Lines.Add(IntToStr(size)+' - '+StringToHex(pck,' '));   end;

Последний раз редактировалось PanAm, 17.12.2008 в 14:57.
PanAm вне форума   Ответить с цитированием
За это сообщение PanAm нажился спасибкой от:
Старый 17.12.2008, 15:06   #32
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию

PanAm: Вроде всё работает...
DjSeNseI вне форума   Ответить с цитированием
Старый 17.12.2008, 15:15   #33
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

наздоровье, обычно не следующем шаге ломаются и бросают...
PanAm вне форума   Ответить с цитированием
Старый 17.12.2008, 16:08   #34
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию

Ща пытаюсь пройти авторизацию.
А ты продолжаешь заниматься этой шнягой? по написанию бота

Добавлено через 20 минут
PanaM: Объясни плиз что это такое PacketB-ниже где это встречается???


Цитата:
function pkt_ckecksum(pos: integer; count: integer):cardinal;
var
i, j : integer;
crc, chksum : longint;
begin
j:=pos; //начало для подсчета контрольной суммы
crc:=0;
chksum:=0;
for i:=0 to (count div 4) do //длину считаем блоками по 4
begin
crc:=PacketB[j];
crc:=crc or (PacketB[j+1] shl 8);
crc:=crc or (PacketB[j+2] shl 16);
crc:=crc or (PacketB[j+3] shl 24);
chksum := chksum xor crc;
j:=j+4;
end;
//move(chksum,PacketB[count+pos],4);
result:=chksum;
end;

Последний раз редактировалось DjSeNseI, 17.12.2008 в 16:08. Причина: Добавлено сообщение
DjSeNseI вне форума   Ответить с цитированием
Старый 17.12.2008, 18:47   #35
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

хз, тут у xkorа наверно понятней
http://coderx.ru/showpost.php?p=19192&postcount=12
delphi Код:
procedure AddChecksum(var data:array of char; position: Word); var   i,k:Word; begin   k := (position div 4)-1;   for i := 0 to k do     PCardinal(@data[position])^:=PCardinal(@data[position])^ xor PCardinal(@data[i*4])^; end;

Добавлено через 2 часа 11 минут
Или вот из la2_client_emu
delphi Код:
procedure AddCheckSumm(var data: array of byte; len: integer); type trec = record       t0: byte;       t1: byte;       t2: byte;       t3: byte;     end; var chksum: Longword;     i: integer;     ecx: Longword;     t: trec; begin   if length(data)<len+4 then exit;   chksum := 0;   i := 0;   while i < len do begin       t.t0 := data[i];       t.t1 := data[i + 1];       t.t2 := data[i + 2];       t.t3 := data[i + 3];       ecx := Longword(t);       chksum := chksum xor ecx;       i := i + 4;   end;   t := trec(chksum);   data[len]:=t.t0;   data[len+1]:=t.t1;   data[len+2]:=t.t2;   data[len+3]:=t.t3; end;

Последний раз редактировалось PanAm, 17.12.2008 в 18:47. Причина: Добавлено сообщение
PanAm вне форума   Ответить с цитированием
За это сообщение PanAm нажился спасибкой от:
Старый 19.12.2008, 15:52   #36
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию HELP

Народ пожалуйста уделите на меня маленько своего времени. Объясните примерно как правельно пользоваться процедурами-функциями ( Чексумме и авторизация). А точней как их использовать???
DjSeNseI вне форума   Ответить с цитированием
Старый 19.12.2008, 16:07   #37
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от DjSeNseI Посмотреть сообщение
Народ пожалуйста уделите на меня маленько своего времени. Объясните примерно как правельно пользоваться процедурами-функциями ( Чексумме и авторизация). А точней как их использовать???
Смотри внимательно, я давал пример
delphi Код:
procedure build_RequestAuthLogin(); begin   InitPkt;   WriteW($32);   WriteID($00);   WriteS(DefaultAccount);   pos:=$11; WriteS(DefaultPassword);   pos:=33; WriteB($08);   pos:=$2a; WriteD(pkt_ckecksum(2,40)); // <----- чексумма   WriteD($0); end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 19.12.2008, 16:32   #38
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию

Ну вот к примеру пришёл мне пакет(инит) теперь надо составить пакет на авторизацию.

Цитата:
RequestAuthLogin

Формат:
32 00 // Длина
00 // Тип
XX XX XX XX XX XX XX XX XX XX XX XX XX XX // Login массив из 14 символов
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX // Password 16 символов
08 00 00 00 00 00 00 00 00
XX XX XX XX // чексумма
00 00 00 00
Пытаюсь ща вручную состряпать пакет. Вот мой тест пакет изготовлен вручную:
Цитата:
32 00
00
64 6A 73 65 6E 73 65 69 //Логин(djsensei)
32 31 75 68 65 67 67 66 6B 36 //Пароль(21uheggfk6)
08 // Маркер конца
00 00 00 00 00 00 00 00
XX XX XX XX // Чек сумма
00 00 00 00
Это правельно составлено???Без чек суммы.
Как вручную определить чек-сумму?

Добавлено через 6 минут
Помоги плиз с пакетом:
Вот даные.
Логин=djsensei
Пароль=21uheggfk6

Составь плиз вручную пакет из этих даных для изучения плиз))))

Последний раз редактировалось DjSeNseI, 19.12.2008 в 16:32. Причина: Добавлено сообщение
DjSeNseI вне форума   Ответить с цитированием
Старый 19.12.2008, 16:41   #39
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Код:
//к.сумма считается для блока начиная со смещ. 2, длиной 40 байт
То есть блок, для которого считается к.сумма начинается со 2-го байта (исключаем длину пакета) и до начала контрольной суммы (исключая к.сумму и хвостовые байты).
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 19.12.2008, 16:48   #40
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию

Как я понял это будет чексумма считаться вот так вот:
Цитата:
32 00
00
XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
08 00 00 00 00 00 00 00 00

XX XX XX XX // чексумма
00 00 00 00
Так вот что выделено жирным шрифтом это чек сумма?
DjSeNseI вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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