Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.08.2008, 06:48   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию L2PacketHack 3.5.x

Исходники здесь
Вот такие скомпилированные версии есть у меня.

Ниже данные устарели.
Репозиторий находится тут (открывать через SVN клиент)
Удобный просмотр репозитория через браузер тут
Скомпилированные версии тут Пароль к архиву: coderx.ru

Есть ли предложения по модернизации существующего кода с описанием как должно и что хотелось бы заменить/добавить?

Программа пишется в среде Delphi 2007 и Delphi 7 с использованием следующих дополнительных библиотек компонентов:
- FastScript (http://fast-report.com/ru/products/fast-script.html)
- JCL (http://sourceforge.net/projects/jcl/)
- JVCL (http://sourceforge.net/projects/jvcl/)

Дополнительные компоненты брать тут. (<-- TPerlRegEx есть только там)

/upd:
для компиляции последних ревизий понадобятся JCL, JVCL (ссылки выше) а так же:
jwapi2.2a, SyntEdit, TRichView.v11.0+ScaleRichView.v2.0, TsiLang (letitbit / upload.com.ua)
Немного подправленный FastScript искать в файловом архиве.

Последний раз редактировалось NLObP, 17.10.2016 в 00:02.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 111 спасибками от:
-=Ma}{imuS=-, 4erteg, Agat, ak47, Alan, alexsl, alexteam, AoWpwnz, APXAHGEJI, Asmalaa Asrety, Benefit, BISMARCK_555, boy200007, boypush, Breadfan, BuKbI4, CCCP, Crypto, Curious, cutter, DashKAaa, Denis63RUS, dyh9l, Elecktron, Emocean, Evgeniy, FatalHistori, Fer123, Ferrari3200, FFALL777, Fim, freeworld, GameCoder, gavr1l0, gexiss, goodvin1709, Green, Grinch, HacPaTyc, INFERION, isya, Johnson, Keeper, Keisei, Kotyara2014, lomoWAR, lordka), LostQ, Lotar, Ma3aXakA, march, marslem, mat1s, MHz, micoach, MiRoN, mirt, MoD_Hanes, MrIICUX, Mulder, Murdoc, neonv1, nezabudkin, Nigga, Niros, NoFear, OleSha, OMOH8787, PanAm, pascalpwnz, PerioH, PIONER, QaK, rastaman_228, ratvier, RockTeam, RoZ, Rubicosha, Rysis, Ryth, saxa24111, shunder, skaner, skiner4119, Snowbars, StekloReZ, stopicot, TAMBIK, Tchep, Therapyst, TryLaw, vahes, Velizarx, victor_rvm, Vilson, Vklu4atel^^, vlad00777, vovanchik, vul-test, wanick, wasabi_100, WhiteDevil, Xelat, xkor, Yegor, Yellowboy, zDiablik, АлисаХочетСекс, Арти, женька
Старый 02.05.2009, 02:27   #751
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Да я заметил что LSP включаеться вроде как всего лишь записью 1го ключа в реестре.

По поводу inject - почему он не работает там где есть ГГ. Как ГГ находит что мы перехватили функцию из winsock connect?
Yegor вне форума   Ответить с цитированием
Старый 02.05.2009, 03:00   #752
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Yegor, ГГ вроде сканирует несколько важных по его мнению функций на наличие джампов в начале и если находит то восстанавливает правильное начало функций
в число важных входит и connect
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 02.05.2009, 12:58   #753
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
ну неправильно через реестр с ним работать когда для этого есть намного более удобные API функции...
Ну, функции инсталяции там в отдельном юните, поправь того индуса, переписав его на свой лад..
а то индус кудато пропал.. видно опять какуюто глюкалку пишет
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 02.05.2009, 13:46   #754
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Вопрос. Мне потребовалось в TXorCodingOut.EncryptGP изменить размер пакета, как лучше это сделать? Через VirtualProtect и
Цитата:
Сообщение от alexteam Посмотреть сообщение
copymemory(@size, @newsize, 4) ?
или обьявить Size не как const а как var?

Во втором варианте мне кажется пакетхак это не проглотит?
Sherman вне форума   Ответить с цитированием
Старый 02.05.2009, 13:53   #755
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

var надежнее.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 02.05.2009, 23:05   #756
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Sherman Посмотреть сообщение
Во втором варианте мне кажется пакетхак это не проглотит?
он об этом и не узнает), const от var при передаче параметров отличаются только на этапе разработки, после компиляции между ними нет разници, ну развешто переменная переданная по const может быть в области памяти предназначенной только для чтения, но это только если переменная была константой на этапе разработки что к EncryptGP точно не относиться...

Добавлено через 1 минуту
ЗЫ тут тока другой вопрос - на сколько адекватно пакетхак воспримет изменение размера ибо я не помню кода вызывающего EncryptGP...
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 02.05.2009 в 23:05. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
Старый 02.05.2009, 23:19   #757
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ну, не особо то и получиться. во всяком случае у меня в коде так уж точно.
ибо.
xorS.DecryptGP(packet.data, Packet.Size - 2);
для того чтобы было возможно должно быть аля

temp := Packet.Size -2;
xorS.DecryptGP(packet.data, temp);
Packet.Size := temp + 2; //пакеты с длинной <= 2 будут всеравно игнорироваться.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 02.05.2009, 23:22   #758
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

alexteam, ага, не прокатит значит), хотя ошибок по идее тоже не вызовет...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 02.05.2009, 23:26   #759
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ну, вызывать то оно и не должно. переменная явно не в защищенной памяти так как считаеться во время вызова. но и толку от такого изменения тоже нет. результат не запишеться магическим образом обратно.. а уничтожиться оптимизатором по прыжку в стеке на уровень вверх.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 03.05.2009, 05:08   #760
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

В предыдущих версиях быда опция: "Пропускать логин - программа начинает работать после соединения с Game-Сервером". Кто подскажет для чего это? Из кода ниже тоже непонятно что оно делает .

delphi Код:
//пропускать логин?     //если (пропускать логин и мы не в игре)     if isPassLogin and (not IsGamel) then     begin       //отсылаем данные, сначала длину, а потом сам пакет       send(CSockl,PacketB, 2, 0);       repeat       until send(CSockl, PacketB, recv(SSockl, PacketB, $FFFF, 0), 0)<=0;     end     else     begin//иначе (пропускать логин и мы в игре)       //прием пакетов       repeat         if not GetSocketData(SSockl, Packet.DataB, Packet.Size-2) then break;         if IsGamel            then PacketProcesor(PacketB, CSockl, id, 4)            else PacketProcesor(PacketB, CSockl, id, 2);         if not GetSocketData(SSockl, Packet, 2) then break;         //sendMSG('size: '+IntToStr(Packet.Size));       until False;     end;

Такое ощушение что изначально должна была быть возможность залогиниваться с помошью PH, но это так и не было реализовано.

Добавлено через 1 час 28 минут
И ещё просветите зачем функция:
delphi Код:
function GetSocketData(Socket: TSocket; var Data; const Size: Word): Boolean; var   Position: Word;   Len: Integer;   DataB: array[0..$5000] of Byte absolute Data; begin   Result:=False;   Position:=0;   while Position<Size do begin     Len:=recv(Socket,DataB[Position],1,0);     if Len<=0 then Exit;     Inc(Position, Len);   end;   Result:=True; end;

Я как понял она с помошью "recv" считывает нужное количество байт с сокета по 1 байту. Почему так сделали? Что случится если попытаться сразу считать необходимое кол-во байт одним махом.

зы: прошу прощения за обилие вопросов, приспичило разобраться с программой.

Последний раз редактировалось Yegor, 03.05.2009 в 05:10. Причина: Добавлено сообщение
Yegor вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

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

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