первый это пинг клиетом сервера (как только открываеться меньшка выбора серверов, он конектиться на серв с целью получить отклик)
а второе - собственно соединение.
отключи автозакрытие фреймов при дисконнекте - поймешь. в первом соединении пробегает всего 2-3 пакетика.
Добавлено через 10 минут
2 marlin
Еще 1 пост по этой же теме и ты будешь вторым человеком получившим от меня тут вечный бан. ибо я задолбался резать одно и тоже.
это переполнение в переменной самого скрипта. других вариантов не вижу. проблема подымалась на форуме уже. переполнение скорей всего происходит в WriteD. почему - потому что ей передается переменная не влезающая в 4 байта. колупай скрипт и ищи где и почему.
Добавлено через 8 минут Sherman, тут кто-то тебе что-то должен ?. Оффтоп
посвящается не конкретно одной персоне: руци кривые ? с кодом разобраться не можете ? мозгу не хватает чтобы проблему найти без чужой помощи ? что вы в сурсах то забыли тогда ? не лезте туда и проблем не будет.
умиляет что еще обхаять разрабов надо, по типу я скомпилить не могу, у вас проект кривой. а то что у самих разрабов с этим проблем нет - вообще не в счет.
насмотрелся я уже на таких которые меняют пару строчек в проекте, трут копирайты и называеют это "прожектом от дяди васи", зло берет.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 28.04.2009 в 13:16.
Причина: Добавлено сообщение
За это сообщение alexteam нажился 2 спасибками от:
Там нет FastReport который используется разработчиками.
Цитата:
Sherman, тут кто-то тебе что-то должен ?.
Вопрос не стоит "Кто-то кому-то должен", мой вопрос состоит в том, что проект не собирается при использовании компонент ссылки на которые даны в первом посте топика. (Агришься не по теме)
Еще у меня вопрос, существует ли возможность из плагина произвести смену ключа шифрования? Либо же пример newxor.dll которая меняет ключ проанализировав какой то принятый пакет от сервера?
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.
Последний раз редактировалось Sherman, 28.04.2009 в 13:51.
он с офсайта.
я последний раз перетягивал для бдс 2006 его 26 апреля 2009 г., 15:17:49 чтобы поставить и сделать промежуточный билд - и сделал. БЕЗ проблем.
существует ли возможность из плагина произвести смену ключа шифрования? Либо же пример newxor.dll которая меняет ключ проанализировав какой то принятый пакет от сервера?
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.
Цитата:
где мы используем фастрепорт ?
FastScript, простите.
Последний раз редактировалось Sherman, 28.04.2009 в 14:06.
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.
невхор производит декодировку пакетов.. туда не передаються пакеты ?... хм.. онапроизводит декодировку посредством ментального воздействия на пх ?
Добавлено через 53 секунды
FastScript, с оффсайта.
я перекачивал его на выходных по причине того что перешел на бдс2к6.
и прекрасно сбилдил работающий проект.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 28.04.2009 в 14:11.
Причина: Добавлено сообщение
function CreateCoding(Value:PCodingClass): HRESULT; stdcall;
begin
Result:=0;
try
Value^:=TXorCoding.Create;
except
Result:=-1;
Value^:=nil;
end;
end;
function CreateCodingOut(Value:PCodingClass): HRESULT; stdcall;
begin
Result:=0;
try
Value^:=TXorCodingOut.Create;
except
Result:=-1;
Value^:=nil;
end;
end;
exports CreateCoding, CreateCodingOut;
{ TXorCoding }
constructor TXorCoding.Create();
begin
FillChar(GKeyS[0],SizeOf(GKeyS),0);
FillChar(GKeyR[0],SizeOf(GKeyR),0);
keyLen := 0;
End;
procedure TXorCoding.DecryptGP(var Data; const Size: Word);
var
k:integer;
pck:array[0..$4FFF] of Byte absolute Data;
begin
for k:=size-1 downto 1 do
pck[k]:=pck[k] xor GKeyR[k and keyLen] xor pck[k-1];
if size<>0 then pck[0]:=pck[0] xor GKeyR[0];
Inc(PLongWord(@GKeyR[keyLen-7])^,size);
end;
procedure TXorCoding.EncryptGP(var Data; const Size: Word);
var
i:integer;
pck:array[0..$4FFF] of Byte absolute Data;
begin
if size<>0 then pck[0]:=pck[0] xor GKeyS[0];
for i:=1 to size-1 do
pck[i]:=pck[i] xor GKeyS[i and keyLen] xor pck[i-1];
Inc(PLongWord(@GKeyS[keyLen-7])^,size);
end;
procedure TXorCoding.InitKey(const XorKey; Interlude: Boolean = False);
const
KeyConst: array[0..3] of Byte = ($A1,$6C,$54,$87);
KeyIntrl: array[0..7] of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);
var key2:array[0..15] of Byte;
begin
if Interlude then begin
keyLen:=15;
Move(XorKey,key2,8);
Move(KeyIntrl,key2[8],8);
end else begin
keyLen:=7;
Move(XorKey,key2,4);
Move(KeyConst,key2[4],4);
end;
Move(key2,GKeyS,16);
Move(key2,GKeyR,16);
end;
{ TXorCodingOut }
constructor TXorCodingOut.Create;
begin
FillChar(GKeyS[0],SizeOf(GKeyS),0);
FillChar(GKeyR[0],SizeOf(GKeyR),0);
keyLen := 0;
end;
procedure TXorCodingOut.DecryptGP(var Data; const Size: Word);
var
k:integer;
pck:array[0..$4FFF] of Byte absolute Data;
begin
for k:=size-1 downto 1 do
pck[k]:=pck[k] xor GKeyR[k and keyLen] xor pck[k-1];
if size<>0 then pck[0]:=pck[0] xor GKeyR[0];
Inc(PLongWord(@GKeyR[keyLen-7])^,size);
end;
procedure TXorCodingOut.EncryptGP(var Data; const Size: Word);
var
i:integer;
pck:array[0..$4FFF] of Byte absolute Data;
begin
if size<>0 then pck[0]:=pck[0] xor GKeyS[0];
for i:=1 to size-1 do
pck[i]:=pck[i] xor GKeyS[i and keyLen] xor pck[i-1];
Inc(PLongWord(@GKeyS[keyLen-7])^,size);
end;
procedure TXorCodingOut.InitKey(const XorKey; Interlude: Boolean);
const
KeyConst: array[0..3] of Byte = ($A1,$6C,$54,$87);
KeyIntrl: array[0..7] of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);
var key2:array[0..15] of Byte;
begin
if Interlude then begin
keyLen:=15;
Move(XorKey,key2,8);
Move(KeyIntrl,key2[8],8);
end else begin
keyLen:=7;
Move(XorKey,key2,4);
Move(KeyConst,key2[4],4);
end;
Move(key2,GKeyS,16);
Move(key2,GKeyR,16);
end;
begin
end.
я так понимаю этот нюксор меняет шифрование при получении пакета KeyInit, мне же надо менять ключ шиырования по мере поступления пакетов после первичной инициализации ключа.
Последний раз редактировалось Sherman, 28.04.2009 в 14:21.
метод подключения newxor в ревизиях выше 83 (включая 83) и его структура как таковая не менялись.
обрабатывай выходные данные с
DecryptGP(var Data; const Size: Word);
и меняй GKeyS/C сам.
на выходе у него - расшифрованый пакет.
сам декрипт вызываеться в пх воттак
DecryptGP(packet.data, Packet.Size - 2);
где packet - структура