Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов
Войти через OpenID

Шифрации серверов Здесь разбираемся с алгоритмами шифрации различных серверов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 24.06.2008, 12:13   #1
Заблокирован
 
Регистрация: 01.10.2007
Сообщений: 76
Сказал Спасибо: 22
Имеет 7 спасибок в 7 сообщенях
Murdoc
По умолчанию

Цитата:
Сообщение от VORON Посмотреть сообщение
ДЛЛ прикреплена к посту етому..
при старте пакетхака (режим перехвата- скрытый)
Кроме режима перехвата какие опции должны быть включены/выключены? Обход смены ключа ксор? не дешифровывать трафик?
Murdoc вне форума   Ответить с цитированием
Старый 24.06.2008, 22:17   #2
Новичок
 
Регистрация: 05.05.2008
Сообщений: 19
Сказал Спасибо: 33
Имеет 10 спасибок в 4 сообщенях
MHz пока неопределено
По умолчанию Про хакинг

У меня еще не сформировались четко вопросы, но все-таки попробую изложить их.
Да, все замечательно, у нас есть дамп и тулза для проверки алгоритма шифрации, т.е. остается дело за "малым" - угадать его.
Мне кажется что такой подход совсем не гарантирует конечный результат и может поглотить бесконечное кол-во времени. Отсюда вопросы.
1. xkor - как ты догадался, что надо перехватывать API вызов connect? Как можно догадаться какими функциями посылаются и принимаются пакеты? Это send и recv или другие?
2. Что посоветуете почитать про отладку процессов и дизассемблирование? С чего начать?

Т.е. мне не нравится "угадывать" я хочу "знать" алгоритм. Для этого придется разбираться с хакерством. На ассемблере я программировал но чуть-чуть. Посоветуйте куда копать?
MHz вне форума   Ответить с цитированием
Старый 24.06.2008, 22:54   #3
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

Цитата:
Сообщение от MHz Посмотреть сообщение
У меня еще не сформировались четко вопросы, но все-таки попробую изложить их.
Да, все замечательно, у нас есть дамп и тулза для проверки алгоритма шифрации, т.е. остается дело за "малым" - угадать его.
Мне кажется что такой подход совсем не гарантирует конечный результат и может поглотить бесконечное кол-во времени. Отсюда вопросы.
1. xkor - как ты догадался, что надо перехватывать API вызов connect? Как можно догадаться какими функциями посылаются и принимаются пакеты? Это send и recv или другие?
2. Что посоветуете почитать про отладку процессов и дизассемблирование? С чего начать?

Т.е. мне не нравится "угадывать" я хочу "знать" алгоритм. Для этого придется разбираться с хакерством. На ассемблере я программировал но чуть-чуть. Посоветуйте куда копать?
ммм екзешник и длл-ки в л2 упакованы Themida одной из последих версий, а это, как говорят, один из лучших крипторов на данный момент (конечно это не значит что абсолютно непреодолимый). И если все же у тебя получается снимать РАБОЧИЙ (aka Осмысленный, а не команды для VM) дамп с этих файлов , не мог бы ты выложить тутор по дампированию?
Breadfan вне форума   Ответить с цитированием
Старый 28.06.2008, 15:00   #4
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

Цитата:
Сообщение от Breadfan Посмотреть сообщение
Он самый....
Ну если тебе ето поможет.. то раньше там было так:
Код:
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[0])^,size);
  PLongWord(@GKeyR[4])^:=PLongWord(@GKeyR[4])^ xor PLongWord(@GKeyR[0])^;
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);
  PLongWord(@GKeyS[4])^:=PLongWord(@GKeyS[4])^ xor PLongWord(@GKeyS[0])^;
end;

procedure TXorCoding.InitKey(const XorKey; Interlude: Boolean = False);
var key2:array[0..15] of Byte;
begin
  keyLen:=7;
  Move(XorKey,key2,4);
  key2[0]:=key2[0]xor $82;
  key2[1]:=key2[1]xor $93;
  key2[4]:=key2[2]xor $1a;
  key2[5]:=key2[3]xor $41;
  key2[2]:=0;
  key2[3]:=0;
  key2[6]:=0;
  key2[7]:=0;
  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;
  b: Integer;
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];

  b:=0;
  for k:=1 to size-1 do b:=b+pck[k];

  if size>1 then begin
    GKeyR[0]:=GKeyR[0] xor b;
    if (b<=$FF) then GKeyR[1]:=GKeyR[1] xor (b+size)
    else GKeyR[1]:=GKeyR[1] xor (b shr 8);

    PLongWord(@GKeyR[4])^:=PLongWord(@GKeyR[4])^ xor PLongWord(@GKeyR[0])^;
    if (b<=$ff) and ((b+size)>$FF) then GKeyR[2]:=GKeyR[2] xor 1;

    if(b<=$ff)then GKeyR[5]:=GKeyR[5] xor (size + b);
  end;
end;

procedure TXorCodingOut.EncryptGP(var Data; const Size: Word);
var
  i:integer;
  pck:array[0..$4FFF] of Byte absolute Data;
  b: Integer;
begin
  b:=0;
  for i:=1 to size-1 do b:=b+pck[i];

  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];

  if size>1 then begin
    GKeyS[0]:=GKeyS[0] xor b;
    if(b<=$FF)then GKeyS[1]:=GKeyS[1] xor (b+size)
    else GKeyS[1]:=GKeyS[1] xor (b shr 8);

    PLongWord(@GKeyS[4])^:=PLongWord(@GKeyS[4])^ xor PLongWord(@GKeyS[0])^;
    if(b<=$ff)and(b+size>$FF)then GKeyS[2]:=GKeyS[2] xor 1;

    if(b<=$ff)then GKeyS[5]:=GKeyS[5] xor (size + b);
  end;
end;

procedure TXorCodingOut.InitKey(const XorKey; Interlude: Boolean);
var key2:array[0..15] of Byte;
begin
  keyLen:=7;
  Move(XorKey,key2,4);
  key2[0]:=key2[0]xor $82;
  key2[1]:=key2[1]xor $93;
  key2[4]:=key2[2]xor $1a;
  key2[5]:=key2[3]xor $41;
  key2[2]:=0;
  key2[3]:=0;
  key2[6]:=0;
  key2[7]:=0;
  Move(key2,GKeyS,16);
  Move(key2,GKeyR,16);
end;

begin

end.
они оставили входящий траф без изменения.. способ вычисления начального ключа- тоже не тронули.. изменился тока алгоритм шифрации исходящего трафика..
сломать его- для меня непосильная задача покачто... буду рад услышать что у тебя что то получилось..
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 28.06.2008, 15:04   #5
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

Цитата:
... буду рад услышать что у тебя что то получилось..
Я не один, с нами nezabudkin Уберите название серва)
Breadfan вне форума   Ответить с цитированием
Старый 28.06.2008, 15:13   #6
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

Цитата:
Сообщение от Breadfan Посмотреть сообщение
Я не один, с нами nezabudkin Уберите название серва)
из наблюдений за исходящим трафиком обнаружил лиш то что лог однобайтового пакета константа- значит ключ не меняется при однобайтовом исходящем пакете.. больше мыслей нету-(((
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов



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

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


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

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

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