Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Правила форума Чёрный рынок Реклама и привилегии Гаранты Арбитраж

Вернуться   Чит портал RF-Cheats.ru - форум читеров и ботоводов > > > >

Статьи о Rising Force

: Статьи описывающие те или иные особенности, фишки игры RFO.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр



Ответ
 
Опции темы
Старый 18.01.2011, 14:41   #1
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 970
Благодарностей:
35,053 всего
Мнения: + 24349
Репутация: 111822
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

[Guide] Пишем свои чит-программы через RFWarrior API


Сразу предупреждаю, статья рассчитана на продвинутых пользователей, знакомых с программированием.

Итак, начиная с новой 2.0.gamma8 версии, в RFWarrior добавлены экспортируемые функции, которые может использовать любой человек в своих собственных программах, причём написанных на любом языке программирования. В данной статье я опишу подробно как это можно сделать, что это даёт и разумеется приведу примеры готовых программ.


Суть.
Для начала опишу как работает RFWarrior и в чём, собственно, фишка.
Варриор можно сравнить с WPF - он также пропускает через себя рф траффик и за счёт его модификации выполняет нужные пользователю функции. Фундаментальная разница заключается в том, что варик не пускает соединение через себя, а работает несколько глубже (конкретнее описывать не буду - это сложно). Тем самым он обходит фрост (включая загруженный драйвер фроста) и позволяет модифицировать даже шифрованный траффик.
Чтобы простому пользователю послать свой пакет в обход фроста, пришлось бы повторять всю большую цепочку операций по обходу фроста, которая реализована в варике. Так вот вчера в RFWarrior были добавлены экспортируемые API, которые позволяют простому пользователю-программисту, из своей собственной программы (написанной на любом языке программирования) получать полный контроль над пакетным уровнем RFOnline. При этом, самому пользователю совершенно не нужно обходить фрост, хукать API и так далее.


Экспортируемые функции.
Для того, чтобы воспользоваться описанной выше прелестью, вы должны иметь базовые знания по написанию библиотек, а также импорту (GetProcAddress) и использованию функций из других библиотек. Если вы в этом шарите (или собираетесь начать шарить), расскажу более подробно как это работает.
В библиотеке варриора присутствует следующий ряд экспортируемых функций:
PHP код:
extern "C"
{
// Устанавливает ваш собственный обработчик входящего траффика
    
int __declspec(dllexport__stdcall SetRecvHandler(TPacketHandler hndlr);
// Устанавливает ваш собственный обработчик исходящего траффика
    
int __declspec(dllexport__stdcall SetSendHandler(TPacketHandler hndlr);
// Получение ТЕКУЩЕГО каллбэка-обработчика входящего и исходящего траффика
    
TPacketHandler __declspec(dllexport__stdcall GetRecvHandler(); 
    
TPacketHandler __declspec(dllexport__stdcall GetSendHandler();
// Отсылка пакета игровому серверу
    
int __declspec(dllexport__stdcall SendPacketToServer(charbuffshort len);
// Отсылка пакета игровому клиенту
    
void __declspec(dllexport__stdcall SendPacketToClient(charbuffshort len); 

Это список тех функций, которые вы из своей программы можете импортировать и использовать. Представьте, для того, чтобы послать свой пакет серверу/клиенту или перехватить и ПРАВИТЬ весь игровой траффик, вам нужно всего-лишь экспортировать нужную функцию. Вот в чём соль этого нововведения. Теперь каждый смертный может написать свой чит :)
Немного подробнее о перехвате траффика..
Придуманный механизм похож на работу некоторых Win API, например: SetWindowLong, которая позволяет ставить свой обработчик оконных сообщений. Через функции SetRecvHandler и SetSendHandler вы можете ставить свою функцию-обработчик, которая будет вызываться вариком в момент получения или отсылки пакета. Формат функции обработчика такой:
PHP код:
typedef int (__stdcall *TPacketHandler)(charpacketint plen); 
Определяете любое название своей функции-обработчика и передаете её в импортируемую функцию SetRecvHandler или SetSendHandler, и траффик начинает бежать через ваш обработчик.

Как вы, наверное, уже поняли, импортировать функции надо из уже загруженной в память игры дллки (RFWarrior.dll). То есть обычный LoadLibrary тут не прокатит. Вам нужно аттачить свою дллку к процессу с игрой (а это можно сделать через любой dll-инжектор), а из неё уже искать модуль варика и дёргать из него нужные вам функции.
Я понимаю, что новичкам трудно всё это понять по голому тексту, поэтому попросил Шторма сделать пример (т.к. он был идейным вдохновителем и основным реализатором этой темы :)).
Итак, пример простейшей дллки (на языке Си), которая посредством импортируемых из варика функций, реализует перехват входящего RFOnline траффика в обход фроста:

PHP код:
// Описание формата ВАШЕЙ функции-обработчика входящих пакетов
typedef int (__stdcall *TPacketHandler)(charpacketbufint packetlen);
// Описание формата двух функций, которые вы импортируете из модуля RFWarrior.dll
typedef int (__stdcall *TSetRecvHandler)(TPacketHandler hndlr);
typedef TPacketHandler (__stdcall *TGetRecvHandler)();
HINSTANCE mineDLL 0

// А вот и ваша функция-обработчик входящего траффика.
// Она будет вызываться каждый раз при получении пакета игровым клиентом.
int __stdcall PacketHandler(charpacketbufint packetlen)
{
    
// Ваш код тут
    // packetbuf - пакет
    // packetlen - длина пакета


    // Возвращаемое значение этой функции определяет пойдёт ли пакет дальше
    // в обработчик пакетов самого RFWarrior.
    // 0 - не пойдёт
    // 1 - пойдёт (то есть пакет будет обработан вариком)
    
return 1;
}

// Точка входа в вашу DLL
BOOL WINAPI DllMain(HINSTANCE hinstDLLDWORD fwdreasonLPVOID lpvReserved)
{
// Сохраняем хэндл вашей дллки
    
if (mineDLL == NULL)
        
mineDLL hinstDLL;    
// Если DLL-ка в данный момент загружается, то...
    
if (fwdreason == DLL_PROCESS_ATTACH && mineDLL == hinstDLL) {
// Получаем хэндл модуля RFWarrior.dll
        
HINSTANCE dll_handle GetModuleHandle(L"RFWarrior.dll");
// Импортируем функцию, через которую мы поставим свой обработчик пакетов
        
TSetRecvHandler SetRecvHandler TSetRecvHandler(GetProcAddress(dll_handle,"SetRecvHandler"));
// Вызываем импортируемую функцию, передаём ей в виде параметра адрес нашей функции-обработчика пакетов
        
SetRecvHandler(&PacketHandler);
    }
// Если ваша DLL выгружается, то зануляем в модуле варика ваш обработчик (чтобы он не вылетел из-за вызова функции по битому указателю)
    
else if (fwdreason == DLL_PROCESS_DETACH && mineDLL == hinstDLL) {
        
HINSTANCE dll_handle GetModuleHandle(L"RFWarrior.dll");
        
TSetRecvHandler SetRecvHandler TSetRecvHandler(GetProcAddress(dll_handle,"SetRecvHandler"));
        
SetRecvHandler(0);
    }
    return 
1;

Код абсолютно готовый к использованию, за вас уже всё сделали :) Вам лишь нужно в функции PacketHandler() вставить желаемые махинации со входящими пакетами...
Что конкретно менять во входящих пакетах для достижения того или иного результата, это уже другой вопрос. И ответ на него вы найдёте в процессе изучения RF-траффика или раздела пакетный уровень RF Online.
Если вы совсем нуб и вам интересно, что НАПРИМЕР вы можете сделать.. конкретный выше код вы легко можете использовать как фильтр лута, видеть ВСЕ чужие мины (вне зависимости от расы и класса) и ИНВИЗЕРОВ, как программу показывающую заточку персонажей, как программу, информирующую о появление в зоне видимости других игроков.. name-хак, lvl-хак, спидхак и так далее, и тому подобное.. тут можно перечислять до бесконечности :)
Ну что ж, возможно это не последняя статья по данной тематике, может следующим будет статья по поводу написания конкретного чита для каких-то конкретных целей.
Пока изучайте, пользуйтесь этим.

Спасибо за идею и помощь Stormraider

Последний раз редактировалось dark; 19.01.2011 в 10:48.

Создание читов на заказ | Правила форума

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Сказали спасибо:
gera56 (28.11.2017), лукаш (14.01.2016), GamesHran21 (16.04.2015), Недоступно (03.10.2011), rule-z (24.08.2011), aCCelerat1on (26.02.2011), ландграф (12.02.2011), michwarrior (19.01.2011), котопес (19.01.2011), Недоступно (19.01.2011), Недоступно (18.01.2011), FireDen (18.01.2011)


Старый 18.01.2011, 15:02   #2
Aidarich
Гость
Аватар для Aidarich
Сообщений: n/a
Благодарностей:
0 всего

Полезно очень

Добавлено через 24 секунды
Я хочу пакеты чтоб прем вещи вернуть)

Последний раз редактировалось Aidarich; 18.01.2011 в 15:02. Причина: Добавлено сообщение
 
Ответить с цитированием
Старый 18.01.2011, 15:51   #3
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 970
Благодарностей:
35,053 всего
Мнения: + 24349
Репутация: 111822
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от Aidarich Посмотреть сообщение
Я хочу пакеты чтоб прем вещи вернуть)
варик и так позволяет сколько хочешь, какие хочешь и где хочешь прем вещи делать.. поэтому тут даже заморачиваться не надо.

Создание читов на заказ | Правила форума

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 18.01.2011, 16:01   #4
Тигрь
Крестный отец всех читеров
Аватар для Тигрь
OFFLINE
Регистрация: 02.04.2008
Сообщений: 3,985
Благодарностей:
36,173 всего
Мнения: + 19998
Репутация: 101903

Отличная новость. Как будет время сделаю скелет дллки на Delphi и какой нибудь простенький пример.

Лишь утратив всё до конца, мы обретаем свободу.
 
Ответить с цитированием
Сказали спасибо:
GamesHran21 (16.04.2015), dark (18.01.2011)
Старый 18.01.2011, 16:29   #5
Sky
Гость
Аватар для Sky
Сообщений: n/a
Благодарностей:
0 всего

Хорошая новость, но видимо изучаемый в школе Turbo Pascal не имеет ничего общего с этим язык программирования. И кстати, что это за язык?
 
Ответить с цитированием
Старый 18.01.2011, 16:35   #6
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 970
Благодарностей:
35,053 всего
Мнения: + 24349
Репутация: 111822
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Цитата:
Сообщение от Sky Посмотреть сообщение
Хорошая новость, но видимо изучаемый в школе Turbo Pascal не имеет ничего общего с этим язык программирования. И кстати, что это за язык?
ну на трубопаскале конечно не получится)) он же вроде с интепритатором работает?
Все примеры выше на си.

Создание читов на заказ | Правила форума

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Старый 18.01.2011, 16:44   #7
Тигрь
Крестный отец всех читеров
Аватар для Тигрь
OFFLINE
Регистрация: 02.04.2008
Сообщений: 3,985
Благодарностей:
36,173 всего
Мнения: + 19998
Репутация: 101903

Цитата:
Сообщение от Sky Посмотреть сообщение
Хорошая новость, но видимо изучаемый в школе Turbo Pascal не имеет ничего общего с этим язык программирования. И кстати, что это за язык?
Turbo Pascal он вообще для DOS. Под винду есть Free Pascal либо Delphi. Синтаксис тот же самый что и в паскале. Но если ты с подобными вещами как сторонние API не сталкивался то сразу у тебя не получится написать что либо. придется поразбираться.

Лишь утратив всё до конца, мы обретаем свободу.
 
Ответить с цитированием
Старый 18.01.2011, 16:46   #8
Sky
Гость
Аватар для Sky
Сообщений: n/a
Благодарностей:
0 всего

Мы изучали Turbo Pascal и он вроде DOS'овский, сейчас же есть Borland Pascal, он более новый и я, к примеру, знаю как можно сделать на нем легкие и удобные программы. К примеру поиск текста в txt и добавление его в другой txt. Т.е. такие легкие и полезные программы. Горы не своротишь, но облегчить жизнь человека, который занимается делом, в котором есть базы чего-либо, может.
 
Ответить с цитированием
Старый 18.01.2011, 21:55   #9
GreyFox
Гость
Аватар для GreyFox
Сообщений: n/a
Благодарностей:
0 всего

кстати, ребят, хотел уточнить(немножко не в тему, но связано с си и другими языками). Максимальное кол-во денег в РФ зависит случайно не от типа данных(int), которые позволяют использовать числа от -2ккк с чем-то до +2ккк с чем-то. На пвп-варе, если не ошибаюсь сделали макс лимит 4ккк, и по моей логике следует, что они просто изменили int на unsigned int (прошу прощения если ошибся). связано ли как-то кол-во денег с типами данных?)

Добавлено через 9 минут
а хотя нет, там же вроде от разрядности зависит..

Последний раз редактировалось GreyFox; 18.01.2011 в 22:05. Причина: Добавлено сообщение
 
Ответить с цитированием
Старый 18.01.2011, 22:28   #10
gogorus
Нуб
Аватар для gogorus
OFFLINE
Регистрация: 25.12.2010
Сообщений: 0
Благодарностей:
5 всего
Мнения: + 100
Репутация: 16

dark, а теперь получается можно слать слать любые пакеты? А расширение апи вари будет? Конкурс будет по написанию чит-прлгоам,е на апи вари? Да и там написано что это с гаммы 8 а сейчас же есть токо 7?

Добавлено через 5 минут
Чит-программ*

Последний раз редактировалось gogorus; 18.01.2011 в 22:34. Причина: Добавлено сообщение
 
Ответить с цитированием
Ответ


Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Guide] Руководство по написанию чит программ. Часть 1. Тигрь GCD Team 30 12.05.2016 09:07

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр