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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.09.2008, 15:36   #1
Пользователь
 
Аватар для Emocean
 
Регистрация: 04.02.2008
Сообщений: 63
Сказал Спасибо: 44
Имеет 25 спасибок в 15 сообщенях
Emocean
По умолчанию

Взял newxor.dll от 3.3.3. Всё стало нормально. Чем они отличаются?
Emocean вне форума   Ответить с цитированием
Старый 06.09.2008, 01:18   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Emocean Посмотреть сообщение
Взял newxor.dll от 3.3.3. Всё стало нормально. Чем они отличаются?
Делал
3.2.13 от 13.08.2008
+ добавил в newxor.dpr - CryptoInit: Boolean; //Добавил новый флаг by PanAm

delphi Код:
library newxor; uses   windows,   Coding in 'Coding.pas'; type   TXorCoding = class(TCodingClass)   private     keyLen: Byte;     CryptoInit: Boolean; //Добавил новый флаг   public     constructor Create;     procedure InitKey(const XorKey; Interlude: Boolean = False);override;     procedure DecryptGP(var Data; const Size: Word);override;     procedure EncryptGP(var Data; const Size: Word);override;   end;   TXorCodingOut = class(TCodingClass)   private     keyLen: Byte;   public     constructor Create;     procedure InitKey(const XorKey; Interlude: Boolean = False);override;     procedure DecryptGP(var Data; const Size: Word);override;     procedure EncryptGP(var Data; const Size: Word);override;   end; 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;   CryptoInit := false; End; procedure TXorCoding.DecryptGP(var Data; const Size: Word); var   k:integer;   pck:array[0..$4FFF] of Byte absolute Data; begin   if pck[0] = 0 then begin //вставил проверку     CryptoInit := true; //поднял флаг     InitKey(pck[2]); //устанавил новый ключ шифрования, InitKey(pck[2], true); для интрерлюда     exit; //дальнейшая обработка не нужна, вышел   end;   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 CryptoInit then begin  //это был CryptoInit     CryptoInit := false; //сбосил флаг     exit; //шифрация не требуется - вышел   end;   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.

PS: Надо из 3.2.0 newxor.dpr нормальный брать.

Добавлено через 9 часов 15 минут
3.3.6 от 05.09.2008
[-] вернул newxor.dpr как в версии 3.2.0;
[+] заменен TTRrayIcon на TJvTrayIcon;

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



Последний раз редактировалось NLObP, 06.09.2008 в 01:21. Причина: Добавлено сообщение
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Ответ

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



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

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


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

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

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