Авторизация

Войдите, используя свой логин и пароль:

Убийца l2phx, hlapex и l2walker для Java серверов

17:55
Главная » Клиент | автор: l2 | 26.09.2008

On this thread smeli mentions about antihlapex. I don't know if anything like this is currently available (or for free) - but it is now.
This little project is an ultra simple way of keeping l2phx, hlapex, along with l2walker away from the game client.
First I'll say that both l2phx/hlapex depend on one import from ws2_32.dll (connect) in order to function correctly. Since both applications hook ws2_32.connect by way of a jmp at the start of the function - the solution is obvious, we need to replace their hook. The good news is that the first 12 or so bytes for ws2_32.connect is the same across all versions of Windows (yes, this works on X64 too - I tested it), so instead of patching their jmp with another jmp, we'll simply restore the original bytes of ws2_32.connect, and problem solved.
L2Walker is completely different - from briefly looking it in OllyDbg... walker seems to operate by calling functions inside of L2's engine itself... It installs its window hook (the home key) by directly calling a function inside of window.dll - L2Walker is really impressive actually... but also makes me wonder if the author might have 'inside information' about how Lineage II works internally, if you get my meaning.
Anyways, to the point... the actual bot is LineageII.dll - not the loader application L2Walker.exe - because LineageII.dll is protected with Asprotect... users of the bot can't just rename it to whatever, or Asprotect will get mad D= ... so the simple solution is to query for it with GetModuleHandleA then if we return an address... terminate the game process. I haven't been able to force unload walker's LineageII.dll without causing a GPF in the L2 game client - oh well, who cares...
nophx.dll works by adding it to the IAT of engine.dll and importing DllEntryPoint - since our DllEntryPoint is called quite often(no its not called only once...) its always running through the two 'anti bot' sub-routines. Now how to prevent players from just replacing our engine.dll with an older version? Nevyn gets the credit for this idea in his post here - we change the Auth key, so using an older engine.dll means you don't login.
Well, that's all, kill three bots with 3kb of code, and we didn't even hook outside of our own process address space (unlike some stupid kernel mode anti-#Это слово запрещено у нас# programs) -- I'd like to know what others think of this (if anything), or any holes you might find...
The .dll and its source code is attached to this thread...




На этой нити smeli упоминает о antihlapex. Я не знаю, в настоящее время доступно ли что-нибудь как это (или бесплатно) - но это теперь. Этот небольшой проект - крайний простой способ держать l2phx, hlapex, наряду с l2walker далеко от клиента игры. Сначала я скажу, что оба, l2phx/hlapex зависят от одного импорта от ws2_32.dll (соединяются), чтобы функционировать правильно. Так как оба заявления вербуют ws2_32.connect посредством jmp в начале функции - решение очевидно, мы должны заменить их крюк. Хорошие новости - то, что первые приблизительно 12 байтов для ws2_32.connect - то же самое через все версии Windows (да, это воздействует на X64 также - я проверил это), таким образом вместо того, чтобы исправить их jmp с другим jmp, мы просто восстановим оригинальные байты ws2_32.connect, и решенную проблему. L2Walker полностью отличается - от краткого взгляда этого в OllyDbg..., ходок, кажется, действует, называя функции в двигателе L2's непосредственно.. .. Это устанавливает свой крюк окна (клавиша HOME), непосредственно называя функцию в window.dll - L2Walker действительно внушителен фактически... но также и заставляет меня задаться вопросом, могла ли бы у автора быть 'секретная информация' о том, как Происхождение II работ внутренне, если Вы получаете мое значение. Anyways, к сути... фактическая личинка - LineageII.dll - не заявление погрузчика L2Walker.exe - потому что LineageII.dll защищен с Asprotect..., пользователи личинки не могут просто переименовать это к тому, что, или Asprotect рассердится D =..., таким образом простое решение состоит в том, чтобы подвергнуть сомнению для этого с GetModuleHandleA тогда, если мы возвращаемся, адрес... заканчивают процесс игры. Я не был в состоянии вызвать, разгружают LineageII.dll ходока, не вызывая GPF в клиенте игры L2 - о хорошо, кто заботится. работы nophx.dll, добавляя это к IAT engine.dll и импортируя DllEntryPoint - начиная с нашего DllEntryPoint называют весьма часто (не не названный только однажды...) его всегда пробежка двух 'анти-личинок' подпрограммы. Теперь как предотвратить игроков от только замены нашего engine.dll со старшей версией? Nevyn получает кредит на эту идею в его почте здесь

Скачать