![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте!!!
Товарищи меня заинтересовала одна весчь! Просто захотелось чёт сделать интересное! Играю в WOW(World of Warcraft) (когда есть свободное время - жаль его почти нет!) Так вот! Сам клиент является оболочкой, куда выводятся данные персонажа и других пользователей, перемещение их и т.д. с помощью обмена пакетов данных (сервер - клиент) А как можно перехватить эти данные с сервера (ну или параллельно взять их от туда) и вывести в делфи (в программу или в чёт ещё!) Я имею ввиду допустим программа - Деньги: Жизни: т.д.: Она выводит колличество денег, жизни, и других значений! Вот через Армани значения эти найти можно! А как это всё реализовать в Делфи?? Подскажите плиз, посоветуйте что нить! Какие компоненты этим занимаются и т.д. плиз! |
|
#2
|
|||
|
|||
|
Смотри, в Артмани отлавливаешь необходимые значения и записываешь их адреса (смещения)
Далее создаешь проект, кидаешь необходимые компоненты... По какому либо событию прописываешь Код:
const Offset = Найденной смещение var Wnd: HWND; ThreadId, ProcessId, Hdl: Cardinal; BytesRead: Cardinal; Value: Принимаемое значение (тип выбирается исходя из значений) begin // окно игры Wnd := FindWindow(nil, Название окна игры); // id процесса ThreadId := GetWindowThreadProcessId(Wnd, @ProcessId); // открываем процесс с правами записи Hdl := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId); // читаешь по адресу ReadProcessMemory(Hdl, Pointer(Offset), @Value, Сколько читать байтов, BytesRead); // выводишь // закрываешь процесс CloseHandle(hdl); end; |
|
#3
|
|||
|
|||
|
хм... пасибо!!!
а можно поподробнее! плиз! и по поводу компонентов |
|
#4
|
|||
|
|||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
const
Offset='6F71C7B8';
var
Form1: TForm1;
Value: string;
Wnd: HWND;
ThreadId, ProcessId, Hdl: Cardinal;
BytesRead: Cardinal;
implementation
{$R *.dfm}
begin
// окно игры
Wnd := FindWindow(nil, 'Название окна игры');
// id процесса
ThreadId := GetWindowThreadProcessId(Wnd, @ProcessId);
// открываем процесс с правами записи
Hdl := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
// читаешь по адресу
// выводишь
// закрываешь процесс
CloseHandle(hdl);
ReadProcessMemory(Hdl,Pointer(Offset), @Value, 4, BytesRead);
end.ругается на вот эту строчку Код:
ReadProcessMemory(Hdl,Pointer(Offset), @Value, 4, BytesRead); вот на это слово: Код:
@Value, Вот такими словами: Цитата:
а по идеии должна ведь работать! хотя бы компилироваться!поправьте меня если это не так! |
|
#5
|
||||
|
||||
|
Замени
Value:String на Value:array [0..255] of char И вообще не используй тип string в вызовах системных функций |
|
#6
|
|||
|
|||
|
Цитата:
ругатся продолжается! |
|
#7
|
|||
|
|||
|
Sting
Написание подобной программы является нарушением EULA World of Warcraft. Если ты играешь на оффициально сайте тебя могу забанить. Я тож както хотел сделать чтото подобное, но после того как внимательно прочел EULA, подумал и решил оставить эту идею. |
|
#8
|
|||
|
|||
|
не чего я не нарушаю!
На оффе не гамаю! не нарушаю потому что мне просто надо вывести значения в прогу! а не изменить их! Я часто оставляю комп с включеной игрой и иду допустим телек смотреть! и када напали на меня не вижу! а прога проанализирует колличество жизней, и допустим если жизни изменяться подаст мне звуковой сигнал! и усё! ну это самый бональный и тупой пример! |
|
#9
|
|||
|
|||
|
Раз на оффе не играешь тогда особо по этому поводу не парься
Вот кстати полезно было бы прогу написать "BgWaiter". Записываешься на БГ или арену, включаешь прогу и идешь спокойно телек смотреть . Как очередь подошла прога тебе просигнализирует + антиафк чтоб с очереди не выкинуло ![]() P.S. Мне друг говорил, что для написания аддонов в WoWe есть какойто свой язык программирования (правда мне кажется BgWaiter на нем не напишешь (бота точно не получится )). Что за язык я незнаю. |
|
#10
|
||||
|
||||
|
<оффтоп>
Цитата:
Цитата:
|