Хуки путём патчинга кода функций и другие техники популярно (прям как для дебилов описывает даже я понял) описаны в книге по руткитам Хоглунда. Перевёл её в PDF фомат и нашёл английскую пдфку.
Руткиты. Внедрение в ядро Windows - Hoglund - 2007.djvu - русская дижавю с оглавлением
Руткиты. Внедрение в ядро Windows - Hoglund - 2007.pdf - русская отклеарсканеная (ClearScan) пдфка с оглавлением
Всё в одном архиве
хттпс://yadi.sk/d/dS-YVeYBs9oYL
Source Code к книге пока не нашёл
__________________
Играю по фэншую используя /allblock, созерцая красоту игрового мира, сосредоточившись на получении энергии Ци при убийстве мобов. icq=((2*3*(19^2)*37)-1)*9
Последний раз редактировалось mikser, 03.06.2016 в 10:12.
Астериос не так прост как кажется. Нужно скрывать себя, чтобы нормально отлаживать...
Я уже пробовал качать олю, кучу плагинов на скрытие, ничего не помогло, хотя через API Monitor можно хукать АПИ вызовы. Отладчиком пока не получилось подцепится.
они используют у себя АПИ функцию IsDebuggerPresent
Эту функцию никто всерьез не использует, существует множество других способов обнаружения отладчика. Я в этой теме не силен, но могу посоветовать использовать для Ольки соответствующие плагины (типа Phantom), так же можно переименовать Ольку во что-нибудь другое (поищи в инете как это правильно делать), ну и на XP эти плагины работают лучше за счет драйверов плагинов. Также в ряде случаев лучше работает подключение к уже работающему клиенту, чем попытка запускать клиент непосредственно из Ольки.
Цитата:
Сообщение от respown
dumpbin говорит об обратном + ко всему GetProcAdress возвращает нулевой указатель
Они используют библиотеки от Ertheia, после какого-то обновления данных хроник большинство вкусных классов и методов были убраны из экспорта, и поэтому их через GetProcAddress не найдешь, хотя они всё равно все остались внутри библиотеки.
Цитата:
Сообщение от respown
Я уже пробовал качать олю, кучу плагинов на скрытие, ничего не помогло
Их еще нужно верно настроить, но я здесь плохой советчик
Они используют библиотеки от Ertheia, после какого-то обновления данных хроник большинство вкусных классов и методов были убраны из экспорта, и поэтому их через GetProcAddress не найдешь, хотя они всё равно все остались внутри библиотеки.
есть мысли как найти адреса этих функций? Нужно не для Астериоса а вообще для реализации бота на АПИ на последних L2 хрониках.
есть мысли как найти адреса этих функций? Нужно не для Астериоса а вообще для реализации бота на АПИ на последних L2 хрониках.
Общая мысль очень простая: ищешь в библиотеке ссылки на созданные объекты UNetworkHandler и UGameEngine, а от них уже достаточно легко найдешь все интересующие методы. Все изыскания лучше начинать с предыдущих хроник и дальше данный алгоритм перенести на свеженький клиент.
Реализацию озвучивать не буду: кто реально захочет (и ранее разбирался с HF и подобными хрониками) за денек найдет решение.
Наверное, он имел ввиду, что указатель на экземпляр лежит по адресу 0x20000000 (или куда там грузится engine.dll) + фиксированное смещение.
А если ты собрался делать бота ничего не хукая, скажи, если не секрет, как баффы/скилллист/инвентарь получать собрался ?
Последний раз редактировалось Smwr, 22.07.2016 в 14:12.
Smwr, я сомневаюсь, что ты найдешь эту информацию в открытом доступе, базовое описание (и возможно единственное, которое я встречал) это Радар своими руками. Если и есть какая-то доп. информация, то возможно только в каких-нибудь подпольях или непосредственно от разрабов утилит для ла2.
Если бы я шел по этому пути, то поступил бы так:
- посмотрел бы список экспортируемых функций;
- нашел бы там наиболее интересные (типа GetNextNPC, GetNextParty и подобных);
- в IDA и под отладчиком посмотрел бы как они работают (по сути нужно узнать откуда они берут данные);
- можно по найденным названиям попробовать поискать инфу, вдруг где-то что-то проскользнет;
- дальше либо использовать эти функции, либо разобраться во внутренних структурах ла2 и читать данные напрямую.
Работа очень и очень геморройная и объемная.
К тому же есть ньюанс: если ты не перехватываешь события (OnXxx), то тебе придется периодически шерстить все списки, чтобы у тебя была актуальная информация.
Но зато есть существенный плюс: гварду определить такого бота будет нереально трудно, т.к. целостность данных ла2 никаких образом не нарушается.
ScythLab, я выяснил, что баффлистов целых 2 штуки, один лежит по статическому адресу(как мне показалось), но там нет времени окончания. А вот второй содержит все что мне нужно, но как его брать в рантайме не пойму. У меня есть подозрение, что его все таки содержит структура User, потому что он переразмещается при ее обновлении, но то ли там глубоко вложенный указатель, то ли слишком узкий диапазон выбрал для поиска..
Под отладчиком запускать пробовал один раз(под идой), клиент кританул, что там обысно юзают, олю с плагинами?
Еще бы под msvs запустить л2, а то отлаживать с логированием в файл гемор.
Что касается обновления через регулярное перечитывание - само собой разумеется, только хз, по скорости наверное даже хуже классического перехвата пакетов выйдет...
А что касается защиты - пишу для себя просто ради интереса, использовать на сервере, где защиты нет впринципе.