PDA

Просмотр полной версии : Как писать newxor.dll


4uzet
11.12.2010, 20:58
Дайте ссылки на самое начало как писать newxor.dll , я новичок в етом деле , так что дайте сылку на гайд подробный

Nickers
11.12.2010, 21:10
+1 Присоединяюсь к просьбе, прошу написать:
Куда вписывать алгоритм (В длл и какого вида должен быть код (Алгоритм) (Есть ли newxor.dll на C++?)) и каким софтом лучше всего делать готовые ДЛЛ? Можно ли компилировать в "Microsoft Visual Studio 2010"? (Как?:))

4uzet
11.12.2010, 22:44
может кто подскажет?

NLObP
11.12.2010, 23:18
Nickers, 4uzet, вот исходник для стандартной шифрации от 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.

Nickers
12.12.2010, 09:29
Чем его можно в длл'ку превратить?

unknowned
12.12.2010, 11:11
Чем его можно в длл'ку превратить?

Не поверишь! компилятором.

Nickers
12.12.2010, 12:59
D: НЕЕЕТ! НЕ МОЖЕТ БЫТЬ!
Я спрашиваю какой хароший) А то как обычно накосячу потом буду ипать моцк почему не робит))

dyh9l
12.12.2010, 13:22
Nickers, нет желание со мной побороться с одной защитой?)

Nickers
12.12.2010, 23:32
dyh9l, Сорри, но нет)) Я собираюсь над 1 сервером скоро работать... (Долго и упорно...)

TGK
25.01.2011, 21:04
Люди, подскажите какой-нить компилятор, простенький. умаелся ппц, не черта не понимаю но очень хочу разобраться.

vahes
31.01.2011, 12:20
Inc(PLongWord(@GKeyS[keyLen-7])^,size);

если не тяжело, обьясните, что делает эта строчка.

moha
02.02.2011, 23:51
А где можно найти исходник для стандартной шифрации от L2phx 3.5.+ где ести уже есть дешифрация трафика от aion?

RnG
11.02.2011, 15:14
Нифига непонятно как писать newxor dll в сорцах которые выложил Nlobp подключается какойто внешний файл Coding.PAS что это зачем это? Кто нибудь в состоянии написать вменяемый гайд по написанию newxor.dll?

AHTOWKA
14.02.2011, 20:08
че то непонял какая строчка за че там отвечает,
просьба толково расписать гайд для нубов =)


просьба написать шапки // что тут можно надо написать

RnG
16.02.2011, 16:19
Скачай исходники каким нибудь TortoiseSVN`ом и Delphi 7 открой проект newxor там понятнее и компиллируется)

C0derxWarr1or
17.03.2011, 18:31
где фаел взять Coding.pas делфи требует.

NLObP
17.03.2011, 23:30
где фаел взять Coding.pas делфи требует.

Попробуй этот, из исходников 3.4.х

NLObP
28.03.2011, 00:13
C0derxWarr1or, вот комплект newxor.dpr и coding.pas от l2ph v.3.4.x

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

AHTOWKA
18.04.2011, 21:13
Вроде дело ешо зависит от ключа когда компелишь и невключаеться что типо нету такого файла достаньте диск "надо искать пытаться новый ключ"
пытался ключ создать с "C8"че то нечего невышло.

blackbumer
19.04.2011, 18:52
добавтесь в скайп кто умеет делать это плз помогите мой логин скайпа bumerxxx13

NLObP
20.04.2011, 14:03
Господа! Вы хотя бы "Hello, World!" на паскале писали? Если нет, то и браться за newxor.dll не стоит.

AHTOWKA
22.04.2011, 19:24
Блин расписали бы канкретно че где за строчки в невхоре, учиться то надо,
а есть что нибудь такое что бы на v3.5 пакетхака запуска невхора ?

Если что я там ключ знаю где менять)) в строчках key или как там))

wimax
22.04.2011, 20:43
NLObP, как я понемаю под каждый сервак свой ключ где его брать он приходит на клиент как keyinit? либо его както по другому надо вычисливать?

AHTOWKA
26.04.2011, 19:57
Вроде обычно на явы приходит там 2 строки есть формата вот хз какой форматировать кост или ини вроде оба

пример;

KeyConst: array[0..3] of Byte = ($A1,$6C,$54,$87);
KeyIntrl: array[0..7] of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);

а ну да непод все же сервера идет такая фигня)) забыл совсем код генерируемый))

BARblGA
01.02.2012, 05:06
_http://mmoworld.info/files/guide/packets.html#xxx
вот чтото про пакеты и видел там про шифрование. я сам хз, тока начал осваивать, но мож кому поможет))

Erches
01.02.2012, 13:55
Приветствую, уважаемые участники форума. Кто-нибудь может объяснить назначение библиотеки newxor.dll. Где она подключается? Какие основные функции newxor.dll? Если можно, то поподробней...

P.S.
Я так понимаю,судя по названиям методов, это библиотечка для расшифровки пакетов, отправки пакетов и т.д.

С уважением, Алексей.

Sherman
02.02.2012, 09:05
В пакетхаке реализованы методы стандартного шифрования. newxor.dll предназначена для реализации отличных от стандартного алгоритмов шифрования, без переписывания пакетхака. Подключается она установкой галки в настройках пакетхака. Основные функции это:
1. функция расшифровки пакетов Cli-> Srv
2. функция шифрования пакетов Phk -> Srv
3. функция расшифровки Srv->Phk
4. функция шифрования пакетов Phk -> Cli

Если на этом уровне понятно, то поиск по форуму даст ответы на все вопросы. Если не понятно, то сначала кури принципы работы клиента с севервером ладвы, пакетхака. После этого поймешь для чего нужен newxor.dll

Erches
02.02.2012, 14:36
В пакетхаке реализованы методы стандартного шифрования. newxor.dll предназначена для реализации отличных от стандартного алгоритмов шифрования, без переписывания пакетхака. Подключается она установкой галки в настройках пакетхака. Основные функции это:
1. функция расшифровки пакетов Cli-> Srv
2. функция шифрования пакетов Phk -> Srv
3. функция расшифровки Srv->Phk
4. функция шифрования пакетов Phk -> Cli

Если на этом уровне понятно, то поиск по форуму даст ответы на все вопросы. Если не понятно, то сначала кури принципы работы клиента с севервером ладвы, пакетхака. После этого поймешь для чего нужен newxor.dll

Правильно я понимаю, клиент л2 взаимодействует с сервером отправкой и приемом пакетов, отправленный пакет, в данном случае, отражает действие моим персонажом в игре. Пакетхак, в свою очередь, может перехватывать пакеты и отправлять их, как нам захочется...

Что значит стандартные методы шифрования??? Это методы, которые были получены анализом клиентов на которых не стояло защиты?

P.S.
Если я прав, то у меня вопрос возник. Можно ли получать пакеты, которые уже принял сервер? То есть, зная в каком виде отправлен пакет, попытаться найти ключ шифрования...
С уважением, Алексей.

Ramblen
09.02.2013, 23:31
вот комплект newxor.dpr и coding.pas от l2ph v.3.4.x

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

"Правишь код под свой сервак"
какой код надо править в newxor и как узнать какой код у моего сервера?
в клиенте игры искать где то?
поподробней можно?

n1ghtmare
10.02.2013, 00:26
Ребята, начинать программировать точно не с подобных длл надо. Определить алгоритм шифрования можно либо если ты бог криптоанализа (почти нереально), либо реверс инжинирингом клиента или длл защиты ихней, смотря что там (это тоже не из легких задача, во всяком случае программировать нужно уметь для этого).

Ramblen
10.02.2013, 00:48
newxor.dll над же как то схимичить.
раньше о программирование не задумывался даже)выход ищем

Sherman
10.02.2013, 02:39
исходник newxor.dll в сорцах пкх, для их осознания надо понималь код, написаный на паскале, для внесения изменений - писать на паскале, для осознания алгоритма шифрования и его модификаций - вглядыватся в ф-ции описанные в newxor.dpr до просветления.

Zergatul
10.02.2013, 07:54
в клиенте игры искать где то?
поподробней можно?
Да, все есть в клиенте игры. Пишешь в чате команду (с включенным l2phx конечно)
get_code_for_newxor /lang=delphi
Код вставляется в буфер, копируешь его в делфу, компилируешь, вот и все дела

fabregas
07.05.2013, 22:39
Да, все есть в клиенте игры. Пишешь в чате команду (с включенным l2phx конечно)
get_code_for_newxor /lang=delphi
Код вставляется в буфер, копируешь его в делфу, компилируешь, вот и все дела
при написании сей фразы сервер рвёт коннект, таким образом выяснить код не является возможным
может кто-нибудь подсказать иной способ или как мне (засунув л2пх+прокс в вмвару, а клиент л2 на физ. машине) всё-таки добиться получения кода для корректировки ксор-ключа под сервер?

RenneR
23.09.2013, 22:38
У кого не то есть исходники Newxor для версии 3.5.34 со стандартным методом шифрования? Ну или исходники самого l2ph 3.5.

NLObP
24.09.2013, 22:23
Ну или исходники самого l2ph 3.5.

Исходники найдешь здесь (http://l2ph.coderx.ru/svn/l2phx3/)