HOWTO-Fluke
From GZProject Wiki
←Older revision | Newer revision→
| HOWTO-Fluke |
| FlukeScript |
| Hi-level API |
| IOFluke |
| Input/Output capture library |
| Fluke |
| Code Injection library |
Среди общего множества статей и библиотек в интернете я еще не встречал ни одного удобного и наглядного средства, которое бы позволяло перехватывать, и управлять входными и выходными параметрами, любого типа функций, как импортируемые функции в приложение, так и функции находящиеся внутри исполняемого процесса. Проект Fluke как раз заполняет собой это упущение. Его исполнение разбито на три части, и каждая строго отвечает за свой функционал.
Для начала я хочу посветить читателя в необычный термин, который с годами закрепился в моих проектах. В двух словах, наша задача получить контроль над любым приложением написанным под Windows. Это означает, что мы хотим создать некоторую виртуальную среду вокруг приложения эмалируя поведение операционной системы и внутренних функций внутри исполняемого процесса. Путем таких преобразований, мы без изменения исходного кода можем заставить делать все что угодно, любое приложение под Windows.
Contents |
Что такое Fluke?
Перевод слова Fluke с английского - удача, или счастье. Однако в органическом мире, слово обозначает класс паразитов, сосальщиков. Что полностью оправдывает прендазначение библиотеки - полностью управляемый, скрытый перехват данных.
Библиотеки
Если вы хотите использовать код разработанный в рамках этого проекта, то это легко можно сделать. Так как все модули выполнены как независимые библиотеки с гибким интерфейсом. Они доступны для скачивания через систему контроля версий svndir:trunk/library/fluke, svndir:trunk/library/iofluke. Подключение к проекту и управление вызовом функций проходит в три этапа, первый этап - подгрузка исполняемого кода, это описано в Fluke. Второй этап - перехват функций ввода\вывода, это описано IOFluke. Третий этап - создание среды для удобной работы с приложением на высокоуровневом языке, таким как Java или Visual Basic, это описано FlukeScript.
Пример
Для более подробного рассказа о том как необходимо анализировать программный код нам понадобиться:
- Microsoft Visual Studio 2005 (msdev 8)
- IDA Pro Disassembler and Debugger (4.9.0.863)
В Интернете можно найти другие версии и другие программные продукты схожие по функционалу, однако эти более распространенные.
Поскольку первоначальное предназначение данного модуля было - анализ и перехват функций игрового клиента, для игры в Ultima Online. То пример будет содержать результаты анализа этого клиента и соответственна цель - постараемся контролировать появление нового персонажа на экране, после этого создадим наше внутренне событие и переменную в которой будет указатель на имя игрока.


