Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

newxor.dll.

-

Скрипты и перехват пакетов

- Скрипты и перехват пакетов

Ответ
 
Опции темы
Старый 04.04.2011, 23:45   #1
 Пехотинец
Аватар для HARDporno[™]
 
HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(
Регистрация: 08.03.2011
Сообщений: 93
Популярность: 17091
Сказал(а) спасибо: 52
Поблагодарили 536 раз(а) в 215 сообщениях
 
Arrow newxor.dll.

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

Пример :
Цитата:
вот комплект newxor.dpr и coding.pas от l2ph v.3.4.x
Распаковать из архива newxor.dpr и coding.pas в любую папку
Устанавливаешь Делфи 7 или 2007
Открываешь newxor.dpr
Правишь код под свой сервак
Компилишь

И еще одно вот это исходник для стандартной шифрации от L2phx 3.4,значит если пакеты видны то это так называемая стандартная шифрация?
Код:
library newxor;

uses
  windows,
  Coding in 'Coding.pas';

type
  TXorCoding = 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;

  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;
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.
Заранее спасибо.

Последний раз редактировалось J-Fobos; 05.04.2011 в 00:12. Причина: добавил [code]
  Ответить с цитированием
Старый 05.04.2011, 00:11   #2
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: newxor.dll.

Для версии 3.5 с учетом не нулевых ObfuscationKey (из KeyPacket)
Код:
library newxor;

uses
  usharedstructs in '..\units\usharedstructs.pas',
  Classes,
  windows,
  sysutils;

{$R *.res}

type
  TXorCoding = class(TCodingClass)
  private
    keyLen: Byte;
    DecAccumulatorSize, EncAccumulatorSize : integer;
    DecAccumulator, EncAccumulator : array [0..$ffff] of byte;
  public
    constructor Create;
    procedure InitKey(const XorKey; Interlude: Byte = 0);override;
    procedure DecryptGP(var Data; var Size: Word);override;
    procedure EncryptGP(var Data; var Size: Word);override;
    procedure PreDecrypt(var Data; var Size: Word); override;
    procedure PostEncrypt(var Data; var Size: Word); override;
  end;

  TXorCodingOut = class(TCodingClass)
  private
    keyLen: Byte;
    DecAccumulatorSize, EncAccumulatorSize : integer;
    DecAccumulator, EncAccumulator : array [0..$ffff] of byte;
  public
    constructor Create;
    procedure InitKey(const XorKey; Interlude: Byte = 0);override;
    procedure DecryptGP(var Data; var Size: Word); override;
    procedure EncryptGP(var Data; var Size: Word); override;
    procedure PreDecrypt(var Data; var Size: Word); override;
    procedure PostEncrypt(var Data; var 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;
  EncAccumulatorSize := 0;
  DecAccumulatorSize := 0;
End;

procedure TXorCoding.DecryptGP(var Data; var Size: Word);
var
  k:integer;
  pck:array[0..$FFFD] of Byte absolute Data;
begin
//server>>PreDecrypt>[DecryptGP]>(PH)>EncryptGP>PostEncrypt>>client
  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; var Size: Word);
var
  i:integer;
  pck:array[0..$FFFD] of Byte absolute Data;
begin
//server>>PreDecrypt>DecryptGP>(PH)>[EncryptGP]>PostEncrypt>>client

  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: Byte = 0);
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 <> 0 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;

procedure TXorCoding.PreDecrypt(var Data; var Size: Word);
//server>>[PreDecrypt]>DecryptGP>(PH)>EncryptGP>PostEncrypt>>client
 procedure YourDecryptFuncton(var Packet:TPacket);
  begin
  //сюда поступает пакетик который необходимо декриптовать.
  //если ты захочешь сразу преобразовать его в декриптованный линейковский пакет
  //то decryptgp оставляй пустым
  //если же это поверхносный навесок на криптовку - рекомендую "раздельное питание"
  end;

var
  L2Packet : TPacket; //обьявлен в шаредструктуре
  OutBuffer : array[0..$ffff] of byte;
begin
  //выходящий буффер - пуст.
  fillchar(OutBuffer, $ffff, 0);

  //Суем в аккумулятор то что пришло.
  move(data,DecAccumulator[DecAccumulatorSize],size);
  inc(DecAccumulatorSize, Size);

  Size := 0;  //выход обнуляем не давая пакетхаку эту поцию обработать если на следующей проверке
  //мы вылетим с этой функции либо не попадем в цикл (это и есть склейка пакетов. когда длина линейковского пакета
  //меньше фактически полученных данных. мы будем ждать копя данные в аккумуляторе)

  if DecAccumulatorSize < 2 then exit; //в аккумуляторе нет даже длинны.


  //в акумуляторе есть чтото по длинне превышающей либо равной 2м байтам. читаем их как размер пакета
  move(DecAccumulator[0], L2Packet.Size, 2);

  //!если криптуеться весь траффик включая ДЛИННУ пакетов - в этом месте декриптовать L2Packet.Size!

  while (L2Packet.Size <= DecAccumulatorSize) do
  //Резка пакетов в этом вайле
  //будем крутиться тут пока нам будет хватать фактических данных для обслуживания длинн линейковских пакетов.
  begin
    //подчистим дату пакета, дабы не мусор не смущал при отладке.
    fillchar(l2packet.data[0], $FFFD, 0);
    //вытягиваем с акумулятора данные пакета.
    move(DecAccumulator[2], L2Packet.data[0], L2Packet.Size-2);
    //сдвигаем батики в акумуляторе на эту же длинну, затирая считаный с аккумулятора пакет
    move(DecAccumulator[L2Packet.Size], DecAccumulator[0], DecAccumulatorSize-L2Packet.Size);
    //и умельшаем длинну акумулятора
    dec(DecAccumulatorSize, L2Packet.Size);
    //Декриптуем
    YourDecryptFuncton(L2Packet);
    //декриптованный пакет суем в временный выходящий буффер (он нужен только потому что нельзя  мовнуть в data[xxx])
    move(L2Packet, OutBuffer[Size], L2Packet.Size);
    //и увеличиваем колво байт в выходящем буфере
    inc(Size, L2Packet.Size);
    //Режем следующий пакет
    if DecAccumulatorSize >= 2 then
      begin
        move(DecAccumulator[0], L2Packet.Size, 2);
        //декрипт длинны ?
      end
    else
      break;
  end;

  //сливаем данные с временного буфера в выход буффер
  move(OutBuffer[0], data, $ffff);
end;


procedure TXorCoding.PostEncrypt(var Data; var Size: Word);
//server>>PreDecrypt>DecryptGP>(PH)>EncryptGP>[PostEncrypt]>>client
//в общем точная копия декрипта, только екрипт. а так все на  тех же местах.

 procedure YourEncryptFuncton(var Packet:TPacket);
  begin
    //аналоично YourDeacryptFuncton но наоборот.

  end;

var
  L2Packet : TPacket;
  OutBuffer : array[0..$ffff] of byte;
begin
  fillchar(OutBuffer, $ffff, 0);
  move(data,EncAccumulator[EncAccumulatorSize],size);
  inc(EncAccumulatorSize, Size);
  Size := 0;
  if EncAccumulatorSize < 2 then exit;
  move(EncAccumulator[0], L2Packet.Size, 2);
  while (L2Packet.Size <= EncAccumulatorSize) do
  begin
    fillchar(l2packet.data[0], $FFFD, 0);
    move(EncAccumulator[2], L2Packet.data[0], L2Packet.Size-2);
    move(EncAccumulator[L2Packet.Size], EncAccumulator[0], EncAccumulatorSize-L2Packet.Size);
    dec(EncAccumulatorSize, L2Packet.Size);
    YourEncryptFuncton(L2Packet);
    move(L2Packet, OutBuffer[Size], L2Packet.Size);
    inc(Size, L2Packet.Size);
    if EncAccumulatorSize >= 2 then
      begin
        move(EncAccumulator[0], L2Packet.Size, 2);
      end
    else
      break;
  end;
  move(OutBuffer[0], data, $ffff);
end;



{ TXorCodingOut }

constructor TXorCodingOut.Create;
begin
  FillChar(GKeyS[0],SizeOf(GKeyS),0);
  FillChar(GKeyR[0],SizeOf(GKeyR),0);
  keyLen := 0;
  EncAccumulatorSize := 0;
  DecAccumulatorSize := 0;
end;

procedure TXorCodingOut.DecryptGP(var Data; var Size: Word);
var
  k:integer;
  pck:array[0..$FFFD] of Byte absolute Data;
begin
//client>>PreDecrypt>[DecryptGP]>(PH)>EncryptGP>PostEncrypt>>server

  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; var Size: Word);
var
  i:integer;
  pck:array[0..$FFFD] of Byte absolute Data;
begin
//client>>PreDecrypt>DecryptGP>(PH)>[EncryptGP]>PostEncrypt>>server

  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: Byte = 0);
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 <> 0 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;

procedure TXorCodingOut.PreDecrypt(var Data; var Size: Word);
  procedure YourDecryptFuncton(var Packet:TPacket);
  begin
  //сюда поступает пакетик который необходимо декриптовать.
  //если ты захочешь сразу преобразовать его в декриптованный линейковский пакет
  //то decryptgp оставляй пустым
  //если же это поверхносный навесок на криптовку - рекомендую "раздельное питание"
  end;

var
  L2Packet : TPacket; //обьявлен в шаредструктуре
  OutBuffer : array[0..$ffff] of byte;
begin
//client>>[PreDecrypt]>DecryptGP>(PH)>EncryptGP>PostEncrypt>>server
  //выходящий буффер - пуст.
  fillchar(OutBuffer, $ffff, 0);

  //Суем в аккумулятор то что пришло.
  move(data,DecAccumulator[DecAccumulatorSize],size);

  inc(DecAccumulatorSize, Size);

  Size := 0;  //выход обнуляем не давая пакетхаку эту поцию обработать если на следующей проверке
  //мы вылетим с этой функции либо не попадем в цикл (это и есть склейка пакетов. когда длина линейковского пакета
  //меньше фактически полученных данных. мы будем ждать копя данные в аккумуляторе)

  if DecAccumulatorSize < 2 then exit; //в аккумуляторе нет даже длинны.


  //в акумуляторе есть чтото по длинне превышающей либо равной 2м байтам. читаем их как размер пакета
  move(DecAccumulator[0], L2Packet.Size, 2);

  //!если криптуеться весь траффик включая ДЛИННУ пакетов - в этом месте декриптовать L2Packet.Size!

  while (L2Packet.Size <= DecAccumulatorSize) do
  //Резка пакетов в этом вайле
  //будем крутиться тут пока нам будет хватать фактических данных для обслуживания длинн линейковских пакетов.
  begin
    //подчистим дату пакета, дабы не мусор не смущал при отладке.
    fillchar(l2packet.data[0], $FFFD, 0);
    //вытягиваем с акумулятора данные пакета.
    move(DecAccumulator[2], L2Packet.data[0], L2Packet.Size-2);
    //сдвигаем батики в акумуляторе на эту же длинну, затирая считаный с аккумулятора пакет
    move(DecAccumulator[L2Packet.Size], DecAccumulator[0], DecAccumulatorSize-L2Packet.Size);
    //и умельшаем длинну акумулятора
    dec(DecAccumulatorSize, L2Packet.Size);
    //Декриптуем
    YourDecryptFuncton(L2Packet);
    //декриптованный пакет суем в временный выходящий буффер (он нужен только потому что нельзя  мовнуть в data[xxx])
    move(L2Packet, OutBuffer[Size], L2Packet.Size);
    //и увеличиваем колво байт в выходящем буфере
    inc(Size, L2Packet.Size);
    //Режем следующий пакет
    if DecAccumulatorSize >= 2 then
      begin
        move(DecAccumulator[0], L2Packet.Size, 2);
        //декрипт длинны ?
      end
    else
      break;
  end;

  //сливаем данные с временного буфера в выход буффер
  move(OutBuffer[0], data, $ffff);
end;



procedure TXorCodingOut.PostEncrypt(var Data; var Size: Word);
//в общем точная копия декрипта, только екрипт. а так все на  тех же местах.

  procedure YourEncryptFuncton(var Packet:TPacket);
  begin
    //аналоично YourDeacryptFuncton но наоборот.

  end;

var
  L2Packet : TPacket;
  OutBuffer : array[0..$ffff] of byte;
begin
  fillchar(OutBuffer, $ffff, 0);
  move(data,EncAccumulator[EncAccumulatorSize],size);
  inc(EncAccumulatorSize, Size);
  Size := 0;
  if EncAccumulatorSize < 2 then exit;
  move(EncAccumulator[0], L2Packet.Size, 2);
  while (L2Packet.Size <= EncAccumulatorSize) do
  begin
    fillchar(l2packet.data[0], $FFFD, 0);
    move(EncAccumulator[2], L2Packet.data[0], L2Packet.Size-2);
    move(EncAccumulator[L2Packet.Size], EncAccumulator[0], EncAccumulatorSize-L2Packet.Size);
    dec(EncAccumulatorSize, L2Packet.Size);
    YourEncryptFuncton(L2Packet);
    move(L2Packet, OutBuffer[Size], L2Packet.Size);
    inc(Size, L2Packet.Size);
    if EncAccumulatorSize >= 2 then
      begin
        move(EncAccumulator[0], L2Packet.Size, 2);
      end
    else
      break;
  end;
  move(OutBuffer[0], data, $ffff);
end;



begin

end.
Код:
unit usharedstructs;

interface
uses Classes;

const
  PCK_GS_ToServer = 4;
  PCK_GS_ToClient = 3;
  PCK_LS_ToServer = 2;
  PCK_LS_ToClient = 1;

type

  TEncDecSettings =
  record
    isChangeXor,
    isNoDecrypt,
    isNoProcessToClient,
    isNoProcessToServer,
    isKamael,
    isGraciaOff,
    isSavePLog,
    isNoLog,
    ShowLastPacket,
    HexViewOffset,
    isprocesspackets : boolean;

    NoFreeAfterDisconnect : boolean;
    UseSocks5Chain, Socks5NeedAuth : boolean;
    Socks5Port : cardinal;
    Socks5Host, Socks5AuthUsername, Socks5AuthPwd : string;

    isAION{,
    ignoreServerToClient,
    ignoreClientToServer}: boolean;
  end;

  {Используется плагинами}

  PCodingClass =^TCodingClass;
  TCodingClass = class(TObject)
  public
    GKeyS,GKeyR:array[0..15] of Byte;
    procedure InitKey(const XorKey; Interlude: Byte = 0); Virtual; Abstract;   
    procedure DecryptGP(var Data; var Size: Word); Virtual; Abstract;
    procedure EncryptGP(var Data; var Size: Word); Virtual; Abstract;
    procedure PreDecrypt(var Data; var Size: Word); Virtual; Abstract;
    procedure PostEncrypt(var Data; var Size: Word); Virtual; Abstract;
  end;


  PCorrectorData = ^TCorrectorData;
  TCorrectorData = packed record
    _seed : integer;  // random generator seed for mixing id tables
    _1_byte_table : string;
    _2_byte_table : string;
    _2_byte_table_size: integer;
    _id_mix : boolean;
    temp_seed : integer;
    protocol: integer;
  end;  

  TCharArray = array[0..$FFFF] of AnsiChar;
  TCharArrayEx = array[0..$1FFFE] of AnsiChar; //2х

  PPacket = ^TPacket;  
  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;


  TNewPacket = procedure(var Packet:tpacket;FromServer : boolean; Caller: TObject)  of object; // Caller это TencDec к примеру -> TencDec(caller).name вызывает акшин только TencDec 
  TNewAction = procedure (action : byte; Caller: TObject)  of object; //Caller зависит от action
  TStringArray = array of string;

  
  {экземпляр этого класса (точнее его потомок) передается в плагины.}  
  TOnTimer = procedure(const param: Cardinal); stdcall;
  tConnectInfo = packed record
    ConnectID:integer;
    ConnectName:string[200];
  end;

  tConnectInfoEx = packed record  //Используеться в ASL
    ConnectInfo : tConnectInfo;
    Valid : boolean;
  end;   

  PPluginStruct = ^TPluginStruct;
  TPluginStruct = class (tobject)
    private
    public
    userFormHandle: THandle;
    ConnectInfo : tConnectInfo;
    UserFuncs : tstringlist;
    function ReadC(const pck:string; const index:integer):byte; Virtual; Abstract;
    function ReadH(const pck:string; const index:integer):word; Virtual; Abstract;
    function ReadD(const pck:string; const index:integer):integer; Virtual; Abstract;
    function ReadQ(const pck:string; const index:integer):int64; Virtual; Abstract;
    function ReadF(const pck:string; const index:integer):double; Virtual; Abstract;
    function ReadS(const pck:string; const index:integer):string; Virtual; Abstract;

    function ReadCEx(const pck; const index:integer):byte; Virtual; Abstract;
    function ReadHEx(const pck; const index:integer):word; Virtual; Abstract;
    function ReadDEx(const pck; const index:integer):integer; Virtual; Abstract;
    function ReadQEx(const pck; const index:integer):int64; Virtual; Abstract;
    function ReadFEx(const pck; const index:integer):double; Virtual; Abstract;
    function ReadSEx(const pck; const index:integer):string; Virtual; Abstract;
    procedure WriteC(var pck: string; const v:byte;    ind:integer=-1); Virtual; Abstract;
    procedure WriteH(var pck: string; const v:word;    ind:integer=-1); Virtual; Abstract;
    procedure WriteD(var pck: string; const v:integer; ind:integer=-1); Virtual; Abstract;
    procedure WriteQ(var pck: string; const v:int64; ind:integer=-1); Virtual; Abstract;
    procedure WriteF(var pck: string; const v:double;  ind:integer=-1); Virtual; Abstract;
    procedure WriteS(var pck: string; const v:string;  ind:integer=-1); Virtual; Abstract;
    procedure WriteCEx(var pck; const v:byte;    ind:integer=-1); Virtual; Abstract;
    procedure WriteHEx(var pck; const v:word;    ind:integer=-1); Virtual; Abstract;
    procedure WriteDEx(var pck; const v:integer; ind:integer=-1); Virtual; Abstract;
    procedure WriteQEx(var pck; const v:int64; ind:integer=-1); Virtual; Abstract;
    procedure WriteFEx(var pck; const v:double;  ind:integer=-1); Virtual; Abstract;
    procedure WriteSEx(var pck; const v:string;  ind:integer=-1); Virtual; Abstract;

    Function SetScriptVariable(scriptid:integer; varname:string; varvalue:variant):boolean; Virtual; Abstract;
    Function GetScriptVariable(scriptid:integer; varname:string):variant; Virtual; Abstract;
    function CallScriptFunction(scriptid:integer; Name: String; Params: Variant; var error:string): Variant; Virtual; Abstract;
    
    function IsScriptIdValid(scriptid:integer):boolean; Virtual; Abstract;


    function CreateAndRunTimerThread(const interval, usrParam: Cardinal;
                                     const OnTimerProc: TOnTimer): Pointer; Virtual; Abstract;
    procedure ChangeTimerThread(const timer: Pointer; const interval: Cardinal;
                                const usrParam: Cardinal = $ffffffff;
                                const OnTimerProc: TOnTimer = nil); Virtual; Abstract;
    procedure DestroyTimerThread(var timer: Pointer); Virtual; Abstract;
    function StringToHex(str1,Separator:String):String; Virtual; Abstract;
    function HexToString(Hex:String):String; Virtual; Abstract;
    function DataPckToStrPck(var pck): string; Virtual; Abstract;
    procedure SendPacketData(var pck; const tid: integer; const ToServer: Boolean); Virtual; Abstract;
    procedure SendPacketStr(pck: string; const tid: integer; const ToServer: Boolean); Virtual; Abstract;
    procedure SendPacket(Size: Word; pck: string; tid: integer; ToServer: Boolean); Virtual; Abstract;
    
    function getConnectionName(id : integer):string; Virtual; Abstract;
    function getConnectioidByName(name : string):integer; Virtual; Abstract;
    Function GoFirstConnection:boolean; Virtual; Abstract;
    Function GoNextConnection:boolean; Virtual; Abstract; 
    procedure ShowUserForm(ActivateOnly:boolean);  Virtual; Abstract;
    Procedure HideUserForm;  Virtual; Abstract;
  end;

implementation



end.
________________

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';

Последний раз редактировалось J-Fobos; 05.04.2011 в 00:15.
  Ответить с цитированием
Пользователь сказал cпасибо:
BioDread (17.12.2013)
Старый 05.04.2011, 22:13   #3
 Пехотинец
Аватар для HARDporno[™]
 
HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(
Регистрация: 08.03.2011
Сообщений: 93
Популярность: 17091
Сказал(а) спасибо: 52
Поблагодарили 536 раз(а) в 215 сообщениях
 
По умолчанию Re: newxor.dll.

Спасибо конечно за ответ,но можно ли ответить в таком види:
1.Учи Delphi
2.Скачай это
3.Миняй это
4. и тд.(Все для примера написал).
Готов потрать время но то чтобы нормально разбиратся в этом.
И еще раз зарание спасибо.


Добавлено через 17 часов 58 минут
Поможет кто?
Или же все через wmz?

Последний раз редактировалось HARDporno[™]; 06.04.2011 в 16:12. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 10.04.2011, 03:31   #4
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: newxor.dll.

Я так подозреваю надо выучить делфи и основы ассемблера, также научится работать с отладчиками.
________________

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
  Ответить с цитированием
Старый 10.04.2011, 11:53   #5
 Пехотинец
Аватар для HARDporno[™]
 
HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(
Регистрация: 08.03.2011
Сообщений: 93
Популярность: 17091
Сказал(а) спасибо: 52
Поблагодарили 536 раз(а) в 215 сообщениях
 
По умолчанию Re: newxor.dll.

Цитата:
Сообщение от J-FobosПосмотреть сообщение
Я так подозреваю надо выучить делфи и основы ассемблера, также научится работать с отладчиками.

Ну что ж спасибо за ответ,на днях начну учить основы.

//J-Fobos: наиболее популярный отладчики Olly и IDE, большенство людей что работают с линейкой юзают именно их.

Последний раз редактировалось J-Fobos; 10.04.2011 в 13:10.
  Ответить с цитированием
Старый 09.08.2011, 23:33   #6
 Разведчик
Аватар для DarkDeidara
 
DarkDeidara никому не известный тип
Регистрация: 17.05.2010
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: newxor.dll.

Когда пытаюсь скомпилировать (Для версии 3.5), выдаёт ошибку
Build
[Warning] Project1.dpr(9): File not found: 'newxor.res'
[Error] File not found: 'newxor.res'

чего ему не хватает для компиляции и где это взять??
  Ответить с цитированием
Старый 10.08.2011, 00:00   #7
NoItemName
 Рыцарь
Аватар для J-Fobos
 
J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(J-Fobos сломал счётчик популярности :(
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
 
По умолчанию Re: newxor.dll.

DarkDeidara, уберите эту строчку {$R *.res}.
________________

В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
  Ответить с цитированием
Старый 10.08.2011, 01:22   #8
 Разведчик
Аватар для DarkDeidara
 
DarkDeidara никому не известный тип
Регистрация: 17.05.2010
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: newxor.dll.

Спасибо, скомпилировал.
жаль что к серву не подошло...

//J-Fobos: оно и не должно было подойти, выложенный код встроен в пакетхак по умолчанию, я его только для примера привел.

Последний раз редактировалось J-Fobos; 10.08.2011 в 19:24.
  Ответить с цитированием
Старый 11.08.2011, 11:22   #9
 Разведчик
Аватар для Anarcheon2
 
Anarcheon2 никому не известный тип
Регистрация: 11.07.2009
Сообщений: 10
Популярность: 18
Сказал(а) спасибо: 12
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: newxor.dll.

объясните в личку как компилировать, а то я вообще в этом нуб, а хочется научится...
  Ответить с цитированием
Старый 12.08.2011, 07:25   #10
Читер-спонсор
 Пехотинец
Аватар для enot221
 
enot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нации
Регистрация: 12.08.2010
Сообщений: 51
Популярность: 2704
Сказал(а) спасибо: 92
Поблагодарили 125 раз(а) в 87 сообщениях
Отправить сообщение для enot221 с помощью ICQ Отправить сообщение для enot221 с помощью Skype™
 
По умолчанию Re: newxor.dll.

Цитата:
Сообщение от Anarcheon2Посмотреть сообщение
объясните в личку как компилировать, а то я вообще в этом нуб, а хочется научится...

Сначало учишь делфи, потом основы ассемблера
  Ответить с цитированием
Старый 15.08.2011, 04:47   #11
Читер-спонсор
 Пехотинец
Аватар для enot221
 
enot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нацииenot221 гордость нации
Регистрация: 12.08.2010
Сообщений: 51
Популярность: 2704
Сказал(а) спасибо: 92
Поблагодарили 125 раз(а) в 87 сообщениях
Отправить сообщение для enot221 с помощью ICQ Отправить сообщение для enot221 с помощью Skype™
 
По умолчанию Re: newxor.dll.

P.S а кому нужна помощь насчёт newxor.dll вам в кодеркс, мне там помогли несколько раз
  Ответить с цитированием
Старый 17.08.2011, 10:44   #12
 Разведчик
Аватар для SangreVienta
 
SangreVienta на правильном пути
Регистрация: 08.04.2011
Сообщений: 10
Популярность: 36
Сказал(а) спасибо: 38
Поблагодарили 13 раз(а) в 9 сообщениях
 
По умолчанию Re: newxor.dll.

Цитата:
Сообщение от enot221Посмотреть сообщение
P.S а кому нужна помощь насчёт newxor.dll вам в кодеркс, мне там помогли несколько раз

Cори , но что за ,,кодеркс,, ???
Думаю что нужна будет помощь с newxor.dll , и хочу узнать заранее. СПС .
________________
Понравилось ставь спасибо , я не жадный в долгу не останусь.
  Ответить с цитированием
Старый 17.08.2011, 11:18   #13
 Пехотинец
Аватар для HARDporno[™]
 
HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(HARDporno[™] сломал счётчик популярности :(
Регистрация: 08.03.2011
Сообщений: 93
Популярность: 17091
Сказал(а) спасибо: 52
Поблагодарили 536 раз(а) в 215 сообщениях
 
По умолчанию Re: newxor.dll.

Цитата:
Сообщение от SangreVientaПосмотреть сообщение
Cори , но что за ,,кодеркс,, ???
Думаю что нужна будет помощь с newxor.dll , и хочу узнать заранее. СПС .

coderx.ru
сайт разработчиков пх.
  Ответить с цитированием
Старый 20.09.2011, 19:34   #14
 Разведчик
Аватар для PrOgReSsiV
 
PrOgReSsiV на правильном пути
Регистрация: 27.08.2010
Сообщений: 19
Популярность: 28
Сказал(а) спасибо: 12
Поблагодарили 10 раз(а) в 9 сообщениях
Отправить сообщение для PrOgReSsiV с помощью ICQ Отправить сообщение для PrOgReSsiV с помощью Skype™
 
По умолчанию Re: newxor.dll.

Если не ошибаюсь, делфи построен на паскале. Т.е. Мб лучше начать с паскаля?
2-ое. Ребят, кто шарит в этом, напишите пож маленький видео мануал. (Кому конечно не в лом)
3-ье. Кирилл, когда ты будешь в скайпе? Ссори за оффтоп ^^
________________
Всё для Zhyk.ru!
  Ответить с цитированием
Старый 20.09.2011, 19:40   #15
Знатный Читер
 Рыцарь
Аватар для Федя
 
Федя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе ценуФедя знает себе цену
Регистрация: 15.06.2009
Сообщений: 340
Популярность: 4051
Сказал(а) спасибо: 575
Поблагодарили 511 раз(а) в 217 сообщениях
Отправить сообщение для Федя с помощью ICQ Отправить сообщение для Федя с помощью Skype™
 
По умолчанию Re: newxor.dll.

Язык обжект паскаль, но надо знать что с 2007 года делфи имеет статус отдельного языка -)
Я сам начинал с паскаля , понять основы консольного программирования можно с него, а потом учить делфи.
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] newxor.dll Abyssw Общение и обсуждение Aion 9 21.03.2011 22:35
l2phx пишет, что файл newxor.dll и inject.dll отсутствует! antilucky Скрипты и перехват пакетов 6 18.11.2009 11:27

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net