Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 28.04.2009, 13:14   #1
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

первый это пинг клиетом сервера (как только открываеться меньшка выбора серверов, он конектиться на серв с целью получить отклик)
а второе - собственно соединение.
отключи автозакрытие фреймов при дисконнекте - поймешь. в первом соединении пробегает всего 2-3 пакетика.

Добавлено через 10 минут
2 marlin
Еще 1 пост по этой же теме и ты будешь вторым человеком получившим от меня тут вечный бан. ибо я задолбался резать одно и тоже.
это переполнение в переменной самого скрипта. других вариантов не вижу. проблема подымалась на форуме уже.
переполнение скорей всего происходит в WriteD. почему - потому что ей передается переменная не влезающая в 4 байта. колупай скрипт и ищи где и почему.

Добавлено через 8 минут
Sherman, тут кто-то тебе что-то должен ?.
Оффтоп
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 28.04.2009 в 13:16. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 28.04.2009, 13:43   #2
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Там нет FastReport который используется разработчиками.

Цитата:
Sherman, тут кто-то тебе что-то должен ?.
Вопрос не стоит "Кто-то кому-то должен", мой вопрос состоит в том, что проект не собирается при использовании компонент ссылки на которые даны в первом посте топика. (Агришься не по теме)

Еще у меня вопрос, существует ли возможность из плагина произвести смену ключа шифрования? Либо же пример newxor.dll которая меняет ключ проанализировав какой то принятый пакет от сервера?
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.

Последний раз редактировалось Sherman, 28.04.2009 в 13:51.
Sherman вне форума   Ответить с цитированием
Старый 28.04.2009, 13:47   #3
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Sherman, мы их с офф-сайта качаем.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 28.04.2009, 13:45   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

он с офсайта.
я последний раз перетягивал для бдс 2006 его 26 апреля 2009 г., 15:17:49 чтобы поставить и сделать промежуточный билд - и сделал. БЕЗ проблем.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 28.04.2009, 14:03   #5
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
Там нет FastReport который используется разработчиками.
где мы используем фастрепорт ? я проект помню практически наизусть.. нет там фастрепортов никаких

на фтп+свн+в шапке есть все что нужно.
если посмотреть еще и на даты на фтп - оно там лежит ну ооочень давно.
и агрюсь я как раз по теме.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 28.04.2009, 14:04   #6
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Более интересен ответ на второй вопрос.
Цитата:
существует ли возможность из плагина произвести смену ключа шифрования? Либо же пример newxor.dll которая меняет ключ проанализировав какой то принятый пакет от сервера?
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.

Цитата:
где мы используем фастрепорт ?
FastScript, простите.

Последний раз редактировалось Sherman, 28.04.2009 в 14:06.
Sherman вне форума   Ответить с цитированием
Старый 28.04.2009, 14:10   #7
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
В примере который я нашел на форуме не увидел что в newxor передаются пакеты.
невхор производит декодировку пакетов.. туда не передаються пакеты ?... хм.. онапроизводит декодировку посредством ментального воздействия на пх ?

Добавлено через 53 секунды
FastScript, с оффсайта.
я перекачивал его на выходных по причине того что перешел на бдс2к6.
и прекрасно сбилдил работающий проект.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 28.04.2009 в 14:11. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
Старый 28.04.2009, 14:16   #8
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Есть какой то готовый пример newxor.dpr? Возможно у меня вариант из очень старого пакетхака.

PHP код:
library newxor;

uses
  windows
,
  
Coding in 'Coding.pas';

type
  TXorCoding 
= class(TCodingClass)
  private
    
keyLenByte;
  public
    
constructor Create;
    
procedure InitKey(const XorKeyInterludeBoolean False);override;
    
procedure DecryptGP(var Data; const SizeWord);override;
    
procedure EncryptGP(var Data; const SizeWord);override;
  
end;

  
TXorCodingOut = class(TCodingClass)
  private
    
keyLenByte;
  public
    
constructor Create;
    
procedure InitKey(const XorKeyInterludeBoolean False);override;
    
procedure DecryptGP(var Data; const SizeWord);override;
    
procedure EncryptGP(var Data; const SizeWord);override;
  
end;

function 
CreateCoding(Value:PCodingClass): HRESULTstdcall;
begin
  Result
:=0;
  try
    
Value^:=TXorCoding.Create;
  
except
    Result
:=-1;
    
Value^:=nil;
  
end;
end;

function 
CreateCodingOut(Value:PCodingClass): HRESULTstdcall;
begin
  Result
:=0;
  try
    
Value^:=TXorCodingOut.Create;
  
except
    Result
:=-1;
    
Value^:=nil;
  
end;
end;

exports CreateCodingCreateCodingOut;

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 SizeWord);
var
  
k:integer;
  
pck:array[0..$4FFFof Byte absolute Data;
begin
  
for k:=size-1 downto 1 do
    
pck[k]:=pck[k] xor GKeyR[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 SizeWord);
var
  
i:integer;
  
pck:array[0..$4FFFof Byte absolute Data;
begin
  
if size<>0 then pck[0]:=pck[0] xor GKeyS[0];
  for 
i:=1 to size-do
    
pck[i]:=pck[i] xor GKeyS[and keyLen] xor pck[i-1];
  
Inc(PLongWord(@GKeyS[keyLen-7])^,size);
end;

procedure TXorCoding.InitKey(const XorKeyInterludeBoolean False);
const
  
KeyConst: array[0..3of Byte = ($A1,$6C,$54,$87);
  
KeyIntrl: array[0..7of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);
var 
key2:array[0..15of 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 SizeWord);
var
  
k:integer;
  
pck:array[0..$4FFFof Byte absolute Data;
begin
  
for k:=size-1 downto 1 do
    
pck[k]:=pck[k] xor GKeyR[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 SizeWord);
var
  
i:integer;
  
pck:array[0..$4FFFof Byte absolute Data;
begin
  
if size<>0 then pck[0]:=pck[0] xor GKeyS[0];
  for 
i:=1 to size-do
    
pck[i]:=pck[i] xor GKeyS[and keyLen] xor pck[i-1];
  
Inc(PLongWord(@GKeyS[keyLen-7])^,size);
end;

procedure TXorCodingOut.InitKey(const XorKeyInterludeBoolean);
const
  
KeyConst: array[0..3of Byte = ($A1,$6C,$54,$87);
  
KeyIntrl: array[0..7of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);
var 
key2:array[0..15of 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.
Sherman вне форума   Ответить с цитированием
Старый 28.04.2009, 14:36   #9
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

метод подключения newxor в ревизиях выше 83 (включая 83) и его структура как таковая не менялись.
обрабатывай выходные данные с
DecryptGP(var Data; const Size: Word);
и меняй GKeyS/C сам.

на выходе у него - расшифрованый пакет.
сам декрипт вызываеться в пх воттак
DecryptGP(packet.data, Packet.Size - 2);
где packet - структура
delphi Код:
TPacket = packed record case Integer of     0: (Size: Word;         Data: array[0..$FFFD] of Byte);     1: (PacketAsByteArray: array[0..$FFFF] of Byte);     2: (PacketAsCharArray: TCharArray);     3: (pckSize: Word;         pckId: Byte;         pckData: array[0..$FFFC] of Byte);   end;

Добавлено через 17 минут
и вообще.
в модуль uEncDec загляни.
глянь DecodePacket, EncodePacket
поймеш порядок вызовов. и что где.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 28.04.2009 в 14:55. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 28.04.2009, 15:39   #10
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Спасибо. Собственно uEncDec.pas я и изменял для своих целей, но скомпелированный мной пакетхак не захотел работать.

Последний раз редактировалось Sherman, 28.04.2009 в 15:42.
Sherman вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

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

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