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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.08.2008, 06:48   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию L2PacketHack 3.5.x

Исходники здесь
Вот такие скомпилированные версии есть у меня.

Ниже данные устарели.
Репозиторий находится тут (открывать через SVN клиент)
Удобный просмотр репозитория через браузер тут
Скомпилированные версии тут Пароль к архиву: coderx.ru

Есть ли предложения по модернизации существующего кода с описанием как должно и что хотелось бы заменить/добавить?

Программа пишется в среде Delphi 2007 и Delphi 7 с использованием следующих дополнительных библиотек компонентов:
- FastScript (http://fast-report.com/ru/products/fast-script.html)
- JCL (http://sourceforge.net/projects/jcl/)
- JVCL (http://sourceforge.net/projects/jvcl/)

Дополнительные компоненты брать тут. (<-- TPerlRegEx есть только там)

/upd:
для компиляции последних ревизий понадобятся JCL, JVCL (ссылки выше) а так же:
jwapi2.2a, SyntEdit, TRichView.v11.0+ScaleRichView.v2.0, TsiLang (letitbit / upload.com.ua)
Немного подправленный FastScript искать в файловом архиве.

Последний раз редактировалось NLObP, 17.10.2016 в 00:02.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 111 спасибками от:
-=Ma}{imuS=-, 4erteg, Agat, ak47, Alan, alexsl, alexteam, AoWpwnz, APXAHGEJI, Asmalaa Asrety, Benefit, BISMARCK_555, boy200007, boypush, Breadfan, BuKbI4, CCCP, Crypto, Curious, cutter, DashKAaa, Denis63RUS, dyh9l, Elecktron, Emocean, Evgeniy, FatalHistori, Fer123, Ferrari3200, FFALL777, Fim, freeworld, GameCoder, gavr1l0, gexiss, goodvin1709, Green, Grinch, HacPaTyc, INFERION, isya, Johnson, Keeper, Keisei, Kotyara2014, lomoWAR, lordka), LostQ, Lotar, Ma3aXakA, march, marslem, mat1s, MHz, micoach, MiRoN, mirt, MoD_Hanes, MrIICUX, Mulder, Murdoc, neonv1, nezabudkin, Nigga, Niros, NoFear, OleSha, OMOH8787, PanAm, pascalpwnz, PerioH, PIONER, QaK, rastaman_228, ratvier, RockTeam, RoZ, Rubicosha, Rysis, Ryth, saxa24111, shunder, skaner, skiner4119, Snowbars, StekloReZ, stopicot, TAMBIK, Tchep, Therapyst, TryLaw, vahes, Velizarx, victor_rvm, Vilson, Vklu4atel^^, vlad00777, vovanchik, vul-test, wanick, wasabi_100, WhiteDevil, Xelat, xkor, Yegor, Yellowboy, zDiablik, АлисаХочетСекс, Арти, женька
Старый 28.04.2009, 13:47   #731
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

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


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

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

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

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

Последний раз редактировалось Sherman, 28.04.2009 в 15:42.
Sherman вне форума   Ответить с цитированием
Старый 29.04.2009, 09:55   #738
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Насколько реально достать исходник промежуточной версии phx, скажем 3.4.1.83 - это ещё до коренных изменений в интерфейсе, но выше чем 3.2.0. Там меньше всего наворочено и мне будет проще разобраться с механизмом перехвата траффика.

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

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

Код:
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;
Я так понимаю в том примере который я привел (newxor.dpr) ошибка размера пакета:
Код:
procedure TXorCoding.DecryptGP(var Data; const Size: Word); 
var 
  k:integer; 
  pck:array[0..$4FFF] of Byte absolute Data; <<< Ошибка
 должно быть
pck:array[0..$FFFF] of Byte absolute Data;
begin
я прав?
Sherman вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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