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