|
|
Регистрация | << Правила форума >> | 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 в вызовах системных функций Хорошо написанная программа не требует документации ICQ 9-184-668. |
#6
|
|||
|
|||
Цитата:
ругатся продолжается! |
#7
|
|||
|
|||
из за чего он ругается! люди помогите пожалуйста! что не так я делаю??
какой мне материал почитать?? \я уже гугл задолбал! не чё путного не нашёл! |
#8
|
|||
|
|||
Тебе надо текст или число вытащить?
Если число то используй стандартные типы Byte, Single, Integer. Если же текст то неодходимо побайтно считывать каждый символ а затем переводить в символ |
#9
|
|||
|
|||
Sting
Написание подобной программы является нарушением EULA World of Warcraft. Если ты играешь на оффициально сайте тебя могу забанить. Я тож както хотел сделать чтото подобное, но после того как внимательно прочел EULA, подумал и решил оставить эту идею. |
#10
|
|||
|
|||
не чего я не нарушаю!
На оффе не гамаю! не нарушаю потому что мне просто надо вывести значения в прогу! а не изменить их! Я часто оставляю комп с включеной игрой и иду допустим телек смотреть! и када напали на меня не вижу! а прога проанализирует колличество жизней, и допустим если жизни изменяться подаст мне звуковой сигнал! и усё! ну это самый бональный и тупой пример! |
#11
|
|||
|
|||
Раз на оффе не играешь тогда особо по этому поводу не парься
Вот кстати полезно было бы прогу написать "BgWaiter". Записываешься на БГ или арену, включаешь прогу и идешь спокойно телек смотреть . Как очередь подошла прога тебе просигнализирует + антиафк чтоб с очереди не выкинуло P.S. Мне друг говорил, что для написания аддонов в WoWe есть какойто свой язык программирования (правда мне кажется BgWaiter на нем не напишешь (бота точно не получится )). Что за язык я незнаю. |
#12
|
||||
|
||||
<оффтоп>
Цитата:
Цитата:
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |