Язык: C# Платформа: .NET 2.0 Использовать с помощью: C#, VB.NET, Delphi.NET, языки поддерживающие .NET Сайт проекта: [Ссылки могут видеть только зарегистрированные пользователи. ] Первоисточник: [Ссылки могут видеть только зарегистрированные пользователи. ]
Описание:
Базовый набор классов, для создания PW InGame утилит / ботов.
Индекс:
Core.WinApi
Импортирует базовые функции и структуры из API, которые могут быть нам полезны. Список
Примечание:
Фреймворк старался делать максимально абстрактным, дабы не навязывать пользователю определенные шаблоны.
Например: написать метод получения всей информации о персонаже считают глупым, потому что пользователю может не нужно получать все сразу, а необходимы только координаты.
Спасибо за внимание, надеюсь данный материал будет полезен.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
TBX1n, в примере по поиску игроков рядом, для получения указателя на структуру, Вы используете цепочку оффсетов GA +20 + 380 +88 (что отличается от указанных тут). В связи с этим, могли бы Вы подсказать оффсеты для получения указателя на структуры по мобам и ресурсам (лута)? (как в примере)
P.S. В целом, PW Development Framework достойный продукт!!!
ravin564, отсутствует на жуке, зато присутствует здесь: [Ссылки могут видеть только зарегистрированные пользователи. ]
Оффсетами других структур не обладаю.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
Спасибо TBX1n!
Понятно, что:
GA + 20+380+088+I*4 = GA +8 +20 +18 +[I*4] + (+0)^J +4 (условно)
однако, первая часть выражения позволяет получить указатель на структуру последовательным смещением, а во второй части подразумевается организация листинга страниц памяти, для получения указателя (подробнее [Ссылки могут видеть только зарегистрированные пользователи. ]).
Стремясь к "простому" - мы становимся гармоничнее, мб есть у кого оффсеты?)
Я так понимаю, фреймворк предназначен для написания утилит, работающих с уже запущенным клиентом, или там есть функции, замещающие некоторые функции клиента без его запуска?
Если нет, не мог бы кто-нибудь подсказать, где можно найти какую-нибудь информацию о формате обмена пакетами? (прошу прощения за офтопик)
Описание:
Базовый набор классов, для создания PW InGame утилит / ботов.
Цитата:
Сообщение от anette_mitch
где можно найти какую-нибудь информацию о формате обмена пакетами?
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Быстрое снятие и загрузка скриншотов на хостинг.
Собственно, вот последняя версия PWFrameWork:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Предыдущие свои версии я выкладывал на pwlab.ru, но там всё похерилось.
Отличия от того, что выложено тут в первом посте:
1) Исправлены баги (с поиском окон клиентов, с инжектом и др)
2) Возможность работать с несколькими клиентами одновременно (вместо статических методов, используются нестатические методы класса ProcessMemory, каждый объект которого - процесс клиента). Более удобная аллокация памяти в процессе клиента, выполнение инжектов.
3) Более удобный синтаксис с использованием перегруженных операторов.
4) Простая работа с коллекциями объектов в процессе клиента: векторы, хэш-таблицы. Объекты перебираются с помощью энумераторов (оператором foreach, например), поиск осуществляется по индексу.
5) Возможность поиска оффсетов по шаблонам, использование вместо числовых значений оффсета текстовый алиас.
Помимо всего прочего, сохранен и старый API, его тоже можно использовать при желании.
То, чего не было на pwlab.ru:
1) У класса ProcessMemory появились события KeyUp и KeyDown, с помощью которых можно перехватывать нажатия кнопок в клиенте.
В архиве есть исходники библиотеки, скомпиленные сборки, два проекта с примерами (примерно те же самые, что шли с первоначальной версией библиотеки, только переписанные на новый API). По примерам можно понять, как что использовать - там всё несложно.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
По примерам можно понять, как что использовать - там всё несложно.
Раскуриваю примеры в FrameWork'е от whoami. И что то не раскуривается работа с хэш-таблицами. Кто знает, прокомментируйте, пожалуйста, следующий код, чтобы стало понятно что за параметры загружаются в функцию и как потом с этим работать:
Я думаю, что станет на много понятней, если подскажите какую структуру загоняют в HashTable. Я так понимаю что должно быть что то вроде GA +8 +20 +18 +[I*4] + (+0)^J +4 . Но какая конкретно структура была рассмотрена в FW от whoami я понять не могу.
Помогите разобраться пожалуйста:
Вот это понятно: (mem[GameRun] + 0x08 + 0x20) - это как бы начало вышеприведенной структуры. Откуда начинаем плясать так сказать.
Далее:
.ToHashTable(
0x18, //это arrayOffset - следующее смещение, после которого начинается уже перебор, если я правильно понял.
0x14, //это countOffset - это смещение на общее кол-во значений, т.е. оно распологается по адр. GA +8 +20 +14
0x24, //это hashOffset - это я уже не понимаю что за смещение и относительно чего оно.
0x00, // это nextOffset - это видимо имеется ввиду смещение добавляющее листы, которое идет после перебора (не знаю как правильнее выразиться)
0x08, // это keyOffset - это тоже не понятно.
0x04); //это value Offset - и это не понятно.
Если есть другой более наглядный пример по взаимодействию с хэш таблицой из этого фреймворка - покажите пожалуйста. Заранее благодарен за любую помощь.
Смещения полей этой структурки указываются в параметрах nextOffset, keyOffset и valueOffset
Всего таких односвязных списков nListCount, это значение хранится по смещению hashOffset относительно адреса "откуда плясать". По смещению arrayOffset лежит адрес массива указателей на начала списков. В каждом i-ом списке у всех элементов остаток от деления Key на nListCount один и тот же, а равен i.
То есть, сам словарь выглядит так:
Код:
template<class Element>
struct Dictionary
{
long nTotalCount; // смещение countOffset
long nListCount; // hashOffset
Item<Element>** pListArray; // смещение arrayOffset
};
поэтому, если ты ищешь объект по ключу, то ты сразу вычисляешь номер односвязного списка и перебираешь элементы в нём
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Находит окно игры.
[Ссылки могут видеть только зарегистрированные пользователи. ]
После нажатия кнопки "Получить":
[Ссылки могут видеть только зарегистрированные пользователи. ]
Что тут не правильно?)