Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Старый 13.03.2009, 14:52   #1
Заблокирован
 Пехотинец
Аватар для Den1S
 
Den1S скоро будет известенDen1S скоро будет известенDen1S скоро будет известен
Регистрация: 07.12.2008
Сообщений: 75
Популярность: 247
Сказал(а) спасибо: 55
Поблагодарили 99 раз(а) в 32 сообщениях
Отправить сообщение для Den1S с помощью ICQ Отправить сообщение для Den1S с помощью Telegram Отправить сообщение для Den1S с помощью Yahoo
 
По умолчанию Как написать SpeedHack_F.A.Q

Мне проще писать на С++, для делфей придется переделывать.
и так, начнем.
создайте таймер, поставьте время обновления около 100мс и в процедуре срабатывания таймера напишите такой код, ниже идет объяснение кода.
Код:
 HWND wnd = FindWindow("D3D Window",NULL);
  if (wnd)
    {
    DWORD ProcessId;
    GetWindowThreadProcessId(wnd,&ProcessId);
    HANDLE hdl = OpenProcess(PROCESS_ALL_ACCESS,0,ProcessId);
      if (hdl)
      {
      DWORD a=0x00000000;
      DWORD b;
      ReadProcessMemory(hdl,(LPVOID)a,&b,4,0);
      b=b+000;
      WriteProcessMemory(hdl, (LPVOID)b, (LPVOID)&Speed, 4, 0);
      CloseHandle(hdl);
      }
    }
HWND wnd = FindWindow("D3D Window",NULL);
В этой строке мы ищем окно, я ищу не по заголовку, а по типу окна, это удобней, если у вас загружено несколько клиентов игры, но если хотите искать по заголовку, то нужно будет написать HWND wnd = FindWindow(NULL,"RF Online");

if (wnd)
Ну тут думаю все понятно, идет проверка на результат, если окно найдено, то выполняем следующий текст, если не найдено, то ничего не выполняем

{
DWORD ProcessId;
GetWindowThreadProcessId(wnd,&ProcessId);
ищем процесс найденного окна

HANDLE hdl = OpenProcess(PROCESS_ALL_ACCESS,0,ProcessId);
открываем процесс со всеми правами (так нехорошо конечно, но так проще)

if (hdl)
и как обычно, проверка, смогли ли мы открыть процесс со всеми правами, если смогли, выполняем код, если нет, то ничего не выполняем.

{
DWORD a=0x00000000; //этой переменной присваеваем адрес указателя,

DWORD b;
ReadProcessMemory(hdl,(LPVOID)a,&b,4,0);
Читаем значение, которое хранится в адсесе "а" в переменную "b"

b=b+000;
прибавляем к прочитанному значению смещение.

WriteProcessMemory(hdl, (LPVOID)b, (LPVOID)&Speed, 4, 0);
записываем в получившийся адрес "b" значение скорости, хранящееся в переменной Speed, не забываем, что переменная Speed вещественное число.

CloseHandle(hdl);
и не забываем закрыть открытый нами процесс.
}
}
(с)hideki
  Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Ivan_32 (14.03.2009), reaz (04.06.2009), reraider (16.01.2011), VolniyStalker (31.01.2011)
Ответ

Метки
написать, speedhack_f.a.q

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу написать калькулятор шансов заточки - нужны данные JEY72 Архив уязвимостей 8 06.06.2008 07:15

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 16:43.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net