Просмотр полной версии : Как писать newxor.dll
Дайте ссылки на самое начало как писать newxor.dll , я новичок в етом деле , так что дайте сылку на гайд подробный
+1 Присоединяюсь к просьбе, прошу написать:
Куда вписывать алгоритм (В длл и какого вида должен быть код (Алгоритм) (Есть ли newxor.dll на C++?)) и каким софтом лучше всего делать готовые ДЛЛ? Можно ли компилировать в "Microsoft Visual Studio 2010"? (Как?:))
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.
Чем его можно в длл'ку превратить?
unknowned
12.12.2010, 11:11
Чем его можно в длл'ку превратить?
Не поверишь! компилятором.
D: НЕЕЕТ! НЕ МОЖЕТ БЫТЬ!
Я спрашиваю какой хароший) А то как обычно накосячу потом буду ипать моцк почему не робит))
Nickers, нет желание со мной побороться с одной защитой?)
dyh9l, Сорри, но нет)) Я собираюсь над 1 сервером скоро работать... (Долго и упорно...)
Люди, подскажите какой-нить компилятор, простенький. умаелся ппц, не черта не понимаю но очень хочу разобраться.
Inc(PLongWord(@GKeyS[keyLen-7])^,size);
если не тяжело, обьясните, что делает эта строчка.
А где можно найти исходник для стандартной шифрации от L2phx 3.5.+ где ести уже есть дешифрация трафика от aion?
Нифига непонятно как писать newxor dll в сорцах которые выложил Nlobp подключается какойто внешний файл Coding.PAS что это зачем это? Кто нибудь в состоянии написать вменяемый гайд по написанию newxor.dll?
че то непонял какая строчка за че там отвечает,
просьба толково расписать гайд для нубов =)
просьба написать шапки // что тут можно надо написать
Скачай исходники каким нибудь TortoiseSVN`ом и Delphi 7 открой проект newxor там понятнее и компиллируется)
C0derxWarr1or
17.03.2011, 18:31
где фаел взять Coding.pas делфи требует.
где фаел взять Coding.pas делфи требует.
Попробуй этот, из исходников 3.4.х
C0derxWarr1or, вот комплект newxor.dpr и coding.pas от l2ph v.3.4.x
Распаковать из архива newxor.dpr и coding.pas в любую папку
Устанавливаешь Делфи 7 или 2007
Открываешь newxor.dpr
Правишь код под свой сервак
Компилишь
Вроде дело ешо зависит от ключа когда компелишь и невключаеться что типо нету такого файла достаньте диск "надо искать пытаться новый ключ"
пытался ключ создать с "C8"че то нечего невышло.
blackbumer
19.04.2011, 18:52
добавтесь в скайп кто умеет делать это плз помогите мой логин скайпа bumerxxx13
Господа! Вы хотя бы "Hello, World!" на паскале писали? Если нет, то и браться за newxor.dll не стоит.
Блин расписали бы канкретно че где за строчки в невхоре, учиться то надо,
а есть что нибудь такое что бы на v3.5 пакетхака запуска невхора ?
Если что я там ключ знаю где менять)) в строчках key или как там))
NLObP, как я понемаю под каждый сервак свой ключ где его брать он приходит на клиент как keyinit? либо его както по другому надо вычисливать?
Вроде обычно на явы приходит там 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);
а ну да непод все же сервера идет такая фигня)) забыл совсем код генерируемый))
_http://mmoworld.info/files/guide/packets.html#xxx
вот чтото про пакеты и видел там про шифрование. я сам хз, тока начал осваивать, но мож кому поможет))
Приветствую, уважаемые участники форума. Кто-нибудь может объяснить назначение библиотеки newxor.dll. Где она подключается? Какие основные функции newxor.dll? Если можно, то поподробней...
P.S.
Я так понимаю,судя по названиям методов, это библиотечка для расшифровки пакетов, отправки пакетов и т.д.
С уважением, Алексей.
В пакетхаке реализованы методы стандартного шифрования. newxor.dll предназначена для реализации отличных от стандартного алгоритмов шифрования, без переписывания пакетхака. Подключается она установкой галки в настройках пакетхака. Основные функции это:
1. функция расшифровки пакетов Cli-> Srv
2. функция шифрования пакетов Phk -> Srv
3. функция расшифровки Srv->Phk
4. функция шифрования пакетов Phk -> Cli
Если на этом уровне понятно, то поиск по форуму даст ответы на все вопросы. Если не понятно, то сначала кури принципы работы клиента с севервером ладвы, пакетхака. После этого поймешь для чего нужен newxor.dll
В пакетхаке реализованы методы стандартного шифрования. newxor.dll предназначена для реализации отличных от стандартного алгоритмов шифрования, без переписывания пакетхака. Подключается она установкой галки в настройках пакетхака. Основные функции это:
1. функция расшифровки пакетов Cli-> Srv
2. функция шифрования пакетов Phk -> Srv
3. функция расшифровки Srv->Phk
4. функция шифрования пакетов Phk -> Cli
Если на этом уровне понятно, то поиск по форуму даст ответы на все вопросы. Если не понятно, то сначала кури принципы работы клиента с севервером ладвы, пакетхака. После этого поймешь для чего нужен newxor.dll
Правильно я понимаю, клиент л2 взаимодействует с сервером отправкой и приемом пакетов, отправленный пакет, в данном случае, отражает действие моим персонажом в игре. Пакетхак, в свою очередь, может перехватывать пакеты и отправлять их, как нам захочется...
Что значит стандартные методы шифрования??? Это методы, которые были получены анализом клиентов на которых не стояло защиты?
P.S.
Если я прав, то у меня вопрос возник. Можно ли получать пакеты, которые уже принял сервер? То есть, зная в каком виде отправлен пакет, попытаться найти ключ шифрования...
С уважением, Алексей.
вот комплект newxor.dpr и coding.pas от l2ph v.3.4.x
Распаковать из архива newxor.dpr и coding.pas в любую папку
Устанавливаешь Делфи 7 или 2007
Открываешь newxor.dpr
Правишь код под свой сервак
Компилишь
"Правишь код под свой сервак"
какой код надо править в newxor и как узнать какой код у моего сервера?
в клиенте игры искать где то?
поподробней можно?
n1ghtmare
10.02.2013, 00:26
Ребята, начинать программировать точно не с подобных длл надо. Определить алгоритм шифрования можно либо если ты бог криптоанализа (почти нереально), либо реверс инжинирингом клиента или длл защиты ихней, смотря что там (это тоже не из легких задача, во всяком случае программировать нужно уметь для этого).
newxor.dll над же как то схимичить.
раньше о программирование не задумывался даже)выход ищем
исходник 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 на физ. машине) всё-таки добиться получения кода для корректировки ксор-ключа под сервер?
У кого не то есть исходники Newxor для версии 3.5.34 со стандартным методом шифрования? Ну или исходники самого l2ph 3.5.
Ну или исходники самого l2ph 3.5.
Исходники найдешь здесь (http://l2ph.coderx.ru/svn/l2phx3/)
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot