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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 23.01.2008, 20:11   #81
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию Re:

Цитата:
Сообщение от dmitry501
Что ж вам if так не нравится то?
Вполне нормальная инструкция.
На уровне маш. кодов исполняется очень быстро :)
Да, Димко.. я долго исследовал и соглашусь с тобой.. без ифов там никак..
кстатти очень удобно для подобных задач использовать скрипт для подбора алгоритма и мониторинга необходимых переменных..
я например накидал вот такой:
Код:
var
frm:Tform;
memo:Tmemo;
pac:string; //расшифрованный пакет в HEX формате
D1,d2,d3,d4,d5,d6,d7,d8:integer;   //2 разряда 1-го байта.. используются для перевода стринг в HEX
b1,b2,b3,b4:integer;
i:integer; // вспомогательная
size:integer;  //размер пакета
keyClientIN: array [0..7] of byte;  //8 байтов ключа
keyClientOUT: array [0..7] of byte;
keyServerIN: array [0..7] of byte;
keyServerOUT: array [0..7] of byte;
paket:string;

StartKeyCatch:boolean; //указатель на то что начальный ключ отловлен
//////////////////
k: integer;
b,a: integer;
//////////////////
stroka:string;
keyHEX:string;
sizeHEX:string;
BHEX:string;

const
hexdigit = '0123456789ABCDEF';




procedure Init; //Вызывается при включении скрипта
begin
  frm := TForm.Create(nil);
  frm.Caption := 'Chat';
  frm.BorderStyle := bsSizeable;
  frm.Position := poScreenCenter;
  frm.align:=alBottom;
  frm.Width:=700;
  frm.Height:=200;
  frm.FormStyle:=FsStayOnTop;
  frm.Show;

  memo :=TMemo.create(nil);
  memo.parent:=frm;
  memo.align:=alClient;
  memo.WordWrap:=false;
  memo.ScrollBars:=ssBoth;

StartKeyCatch := false;

end;

procedure Free; //Вызывается при выключении скрипта
begin
  memo.free;
  frm.Free;
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
//*****************ИНИЦИАЛИЗИРУЕМ НАЧАЛЬНЫЙ КЛЮЧ ПРИ СТАРТЕ СКРИПТА*******************
//используем действие (сесть/всать) после запуска скрипта
 if FromClient and StartKeyCatch = false then
 begin
  if length(pck) = 10 then
  if (ord(pck[1]) xor $45) = (ord(pck[8]) xor ord(pck[9])) then
  if (ord(pck[1]) xor ord(pck[2])) = (ord(pck[9]) xor ord(pck[10])) then
  begin
  keyClientIN[0]:= ord(pck[1]) xor $45;
  keyClientIN[1]:= ord(pck[1]) xor ord(pck[2]);
  keyClientIN[2]:= ord(pck[2]) xor ord(pck[3]);
  keyClientIN[3]:= ord(pck[3]) xor ord(pck[4]);

  keyClientIN[4]:= ord(pck[4]) xor ord(pck[5]);
  keyClientIN[5]:= ord(pck[5]) xor ord(pck[6]);
  keyClientIN[6]:= ord(pck[6]) xor ord(pck[7]);
  keyClientIN[7]:= ord(pck[7]) xor ord(pck[8]);

  StartKeyCatch:= true;
//  memo.Lines.Add(inttostr(keyClientIN[0])+'+'+inttostr(keyClientIN[1])+' '+inttostr(keyClientIN[2])+' '+inttostr(keyClientIN[3])+' '+inttostr(keyClientIN[4])+' '+inttostr(keyClientIN[5])+' '+inttostr(keyClientIN[6])+' '+inttostr(keyClientIN[7]));
  end;
 end;


 if FromClient and StartKeyCatch = true then
 begin
//применение алгиритма фифрации к пакету.. для получения из PCK - PAKET
  size:=length(pck);
  paket:=pck;

//дешифрируем текущий пакет с использованием уже имеющегося ключа
  for k:=size-1 downto 1 do
  paket[k+1]:=chr(ORD(pck[k+1]) xor keyClientIN[k and 7] xor ord(pck[k-1+1]));
  if size<>0 then paket[0+1]:=CHR(ord(pck[0+1]) xor keyClientIN[0]);


  b:=0;
  a:=0;
//вычисляем новый ключ
//подсчет суммы всех байтов в пакете кроме первого
for k:=1 to size-1 do
begin
b:=b+ord(paket[k+1]);
a:=0;
if (size + b) > $ff then a:=1;
if (size + b) > $ffff then a:=2;
end;

//учет частного случая
if size<>1 then
begin

keyClientIN[0]:=keyClientIN[0] xor b;
if a=0 then keyClientIN[1]:=keyClientIN[1] xor (b+size);
if a=1 then keyClientIN[1]:=keyClientIN[1] xor (b shr 8);
keyClientIN[2]:=keyClientIN[2];
keyClientIN[3]:=keyClientIN[3];


keyClientIN[4]:=keyClientIN[4] xor keyClientIN[0];
keyClientIN[5]:=keyClientIN[5] xor keyClientIN[1];
keyClientIN[6]:=keyClientIN[6] xor keyClientIN[2];
keyClientIN[7]:=keyClientIN[7] xor keyClientIN[3];

keyClientIN[5]:=keyClientIN[5] xor ((size + b) shr (a*8));
keyClientIN[5]:=keyClientIN[5] xor ((size + b) shr (8));
end;

//визуализация лога на форме
pac:='';
  for i:=1 to size do
  begin
  d1:=ord(paket[i]) shr 4;
  d2:=ord(paket[i]) - (d1 shl 4);

  pac := pac + hexdigit[(d1 and $F)+1];
  pac := pac + hexdigit[(d2 and $F)+1];
  pac:= pac + ' ';
  end;

  keyHEX:='';
  for i:=0 to 7 do
  begin
  d1:=keyClientIN[i] shr 4;
  d2:=keyClientIN[i] - (d1 shl 4);

  keyHEX:= keyHEX + hexdigit[(d1 and $F)+1];
  keyHEX:= keyHEX + hexdigit[(d2 and $F)+1];
  keyHEX:= keyHEX + ' ';
  end;

sizeHEX:='';
d1:=size-((size shr 4) shl 4);
d2:=(size shr 4)-((size shr 4) shr 4 shl 4);
d3:=(size shr 8)-((size shr 8) shr 4 shl 4);
d4:=(size shr 12)-((size shr 12) shr 4 shl 4);

sizeHEX:=sizeHEX + hexdigit[(d4 and $F)+1];
sizeHEX:=sizeHEX + hexdigit[(d3 and $F)+1];
sizeHEX:=sizeHEX + hexdigit[(d2 and $F)+1];
sizeHEX:=sizeHEX + hexdigit[(d1 and $F)+1];

bHEX:='';
d1:=b-((b shr 4) shl 4);
d2:=(b shr 4)-((b shr 4) shr 4 shl 4);
d3:=(b shr 8)-((b shr 8) shr 4 shl 4);
d4:=(b shr 12)-((b shr 12) shr 4 shl 4);
d5:=(b shr 16)-((b shr 16) shr 4 shl 4);
d6:=(b shr 18)-((b shr 18) shr 4 shl 4);
d7:=(b shr 22)-((b shr 22) shr 4 shl 4);
d8:=(b shr 26)-((b shr 26) shr 4 shl 4);

bHEX:=bHEX + hexdigit[(d8 and $F)+1];
bHEX:=bHEX + hexdigit[(d7 and $F)+1];
bHEX:=bHEX + hexdigit[(d6 and $F)+1];
bHEX:=bHEX + hexdigit[(d5 and $F)+1];
bHEX:=bHEX + hexdigit[(d4 and $F)+1];
bHEX:=bHEX + hexdigit[(d3 and $F)+1];
bHEX:=bHEX + hexdigit[(d2 and $F)+1];
bHEX:=bHEX + hexdigit[(d1 and $F)+1];



 stroka:=pac+';;'+keyHEX+';;'+ bhex+';;'+sizehex+';;'+inttostr( ((size + b) shr (8))-((b) shr (8)) );

 memo.Lines.Add(stroka);

 end;
end.
на форму в МЕМО- пишется лог исходящих пакетов в HEX (расшифрованных) и плюс еще необходимые переменные мониторятся такие как длинна пакета, ключ текущий и т.д.

Добавлено спустя 2 часа 57 минут 24 секунды:
немного поколдовав с алгоритмом- магу сказать что ИСХОДЯЩИЙ ТРАФ- СЛОМАН!-))
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
За это сообщение VORON нажился спасибкой от:
Старый 23.01.2008, 22:07   #82
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от VORON
ИСХОДЯЩИЙ ТРАФ- СЛОМАН!-))
ну,грац,что я могу сказать, давай входящий теперь =)
QaK вне форума   Ответить с цитированием
Старый 23.01.2008, 23:55   #83
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

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

Добавлено спустя 8 минут 22 секунды:
как прочту топ с начала - с чего всё начиналось.. аж страшно становится-)
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 24.01.2008, 08:57   #84
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от VORON
я хачу сначала исходящий трафик затестировать в деле-)
Ты нашел, откуда начальный ключ выдирать?
QaK вне форума   Ответить с цитированием
Старый 24.01.2008, 13:49   #85
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

Цитата:
Сообщение от lQaKl
Цитата:
Сообщение от VORON
я хачу сначала исходящий трафик затестировать в деле-)
Ты нашел, откуда начальный ключ выдирать?
обрати внимание на скрипт выше.. его можно стартонуть в произвольном месте.. он сам ключ найдет и вычислит из пакета (СЕСТЬ/ВСТАТЬ) и после етого тока начинает алгоритм применять.. скрипт етот пакет по сигнатуре- определяет..
Код:
//*****************ИНИЦИАЛИЗИРУЕМ НАЧАЛЬНЫЙ КЛЮЧ ПРИ СТАРТЕ СКРИПТА*******************
//используем действие (сесть/всать) после запуска скрипта
if FromClient and StartKeyCatch = false then
begin
  if length(pck) = 10 then
  if (ord(pck[1]) xor $45) = (ord(pck[8]) xor ord(pck[9])) then
  if (ord(pck[1]) xor ord(pck[2])) = (ord(pck[9]) xor ord(pck[10])) then
  begin
  keyClientIN[0]:= ord(pck[1]) xor $45;
  keyClientIN[1]:= ord(pck[1]) xor ord(pck[2]);
  keyClientIN[2]:= ord(pck[2]) xor ord(pck[3]);
  keyClientIN[3]:= ord(pck[3]) xor ord(pck[4]);

  keyClientIN[4]:= ord(pck[4]) xor ord(pck[5]);
  keyClientIN[5]:= ord(pck[5]) xor ord(pck[6]);
  keyClientIN[6]:= ord(pck[6]) xor ord(pck[7]);
  keyClientIN[7]:= ord(pck[7]) xor ord(pck[8]);

  StartKeyCatch:= true;
  end;
end;
Добавлено спустя 58 минут 40 секунд:
меня интерисует другой вопрос..
допустим имеем 2 скрипта: 1 вверху- дешефрирует, 2- внизу- запаковывает обратно переменную PCK.. в середине помещаю скриптик любой, например скрипт который отправит серваку- пакет на СОЦ ДЕЙСТВИЕ.. я так понимаю что етот пакет небудет обрабатываться другими скриптами.. он сразу попадает в движок пакетхака и отправляется.. и по скриптам не проходит.. поетому как скоректировать ключ в скрипте который запаковывает- трафик, с учетом етого пакета?
расскажите етот момент кто знает? возможноли вапще реализовать то что я хачу- скриптами? или без ковыряния исходников пакетхака- никак?
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 24.01.2008, 19:49   #86
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДЕШИРИРУЕМ ТРАФИК

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


NLObP вне форума   Ответить с цитированием
Старый 24.01.2008, 21:49   #87
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

если промежуточный скрипт будет сам что то отсылать не через pck то это небудет шифроваться последним скриптом...
но я заканчиваю версию пакетхака в котором можно будет делать newxor.dll при условии разной шифрации на приём и отправку, так что с её помощью можно будет реализовать)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 25.01.2008, 08:51   #88
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

VORON, могу посоветовать сделать так:
напиши 2 процедуры зашифровать и расшифровать,для каждой свой ключ, но вначале, при инициализации, ключ одинаковый - сохраняешь его и для зашифровки, и для расшифровки.
Потом примерно так:
If (FromClient) and (ConnectName='Хз кто') then
begin
Rasshifrovatvsenaxx(pck,keyClientIN);
<сюда стандартный обработчик, типа case pck[1] of>
Zashifrovatvsenaxx(pck,keyClientOut);
end;

и для пакетов, самостоятельно отправляемых тобой на сервер перед отправкой вызываешь
buf:=<суперчитерскийпакетнапримернаманор>;
Zashifrovatvsenaxx(buf,keyClientOut);
SendToServerEx('Хз кто');

Попробуй так =)
QaK вне форума   Ответить с цитированием
Старый 25.01.2008, 11:36   #89
Рыцарь
 
Аватар для VORON
 
Регистрация: 06.08.2007
Сообщений: 209
Сказал Спасибо: 6
Имеет 67 спасибок в 34 сообщенях
VORON пока неопределено
По умолчанию

QAK, ну впринципе да.. я про ето думал.. т.е. можно реализовать в пределах одного скрипта.. туда запихнуть: сам скрипт который нужен+расшифровку+зашифровку.. но чета у меня не стоит на такой подход.. пока ХКОР- доделывает новый пакетхак у меня есть время на взлом входящего трафика.. поетому- когда я закончу с ним то как раз новый пакетхак будет готов (наверно) и тогда проблема отпадет сама собой..
QAK, а знаеш в чем самый смак ломануть шифр на серваке, а не тупо подобрать себе другой сервак без шифровки? в том что на серваке без шифрации ты 1 из 1000 скриптоводов и особо ничем не выделяешся из толпы.. у всех есть хиллеры- боты, все сдают манор скриптом (и его сдать скриптом тяжело) .. а вот на зашифрованном серваке я 1 такой буду-) и весь манор мой будет-) и ХИЛЛЕРЫ тока у меня в ПВП будут-) .. это даст огромное преимущество перед другими..
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
VORON вне форума   Ответить с цитированием
Старый 25.01.2008, 11:56   #90
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от VORON
но чета у меня не стоит на такой подход..
mdaa =) Мощная фраза =) Ты лучше исходящи пока погоняй, на предмет правильности расшифровки, или давай входящий мачить=) Можно ведь модуль написать с 2мя процедурами, и просто подключать его =) лентяй епть =)
QaK вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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