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

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

GCD Team

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



Ответ
 
Опции темы
Старый 09.01.2011, 10:04   #1
Тигрь
Крестный отец всех читеров
Аватар для Тигрь
OFFLINE
Регистрация: 02.04.2008
Сообщений: 3,981
Благодарностей:
35,829 всего
Мнения: + 18850
Репутация: 100877

[Guide] Руководство по написанию чит программ. Часть 1.


Руководство по написанию чит программ. Часть 1
by Тигрь!

Данное руководство я решил написать для ознакомительных целей, так как большинство людей пользуются такими программами, но мало кто из них знает, как они устроены и по какому принципу работают.

Так как руководство основано на опытных пользователей, то необходимы некоторые знания:

• Знание языков программирования (примеры будут написаны на Delphi и C++ Builder), но в принципе если вы хорошо знаете другой язык программирования то вам не составит труда перенести код на него
• Умение пользоваться программами на подобии ArtMoney(знать что такое указатели, разбираться в адресации памяти и т.д)
• Знать что такое шестнадцатеричная система счисления, уметь переводить числа из десятичной в шестнадцатеричную и обратно

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

Итак, начнем. Немного теории:

Чит программы – это программы которые позволяют автоматизировать использование того или иного бага. Как известно баги бывают как минимум пяти видов пакетные(использование TCP/IP пакетов для отправки на сервер или клиент модифицированных данных), memory баги(модификация значений в памяти игрового клиента), файловые(модификация файлов игрового клиента), текстурные (проход сквозь текстуры и т.д) и баги игрового клиента(ошибки в игровом клиенте, приводящие к выполнению действие не задуманных разработчиками) а так же различные их комбинации. В чит программах используются первые три вида, остальные два используются посредством самого игрового клиента без каких либо дополнительных программ.

Вообще тема написания чит программ довольно обширна, поэтому данное руководство разделено на несколько частей. Сегодня я остановлюсь на написании чит программ использующих memory баги. Как было сказано выше, memory баги модифицируют значения в памяти игрового клиента. На их основе реализованы такие известные баги как “ChatHack”, “WallHack”, “SpeedHack”, “FlyHack” и другие (прим. Так же возможна реализация этих багов на пакетном уровне).

Практически все современные игры используют DMA. DMA - - dynamic memory allocation (динамическое распределение памяти). Иными словами DMA игры хранят значения в памяти по адресам, которые изменяются после каждого запуска, перезапуска, загрузки сохранения, перехода в другую локацию или уровень и т.д. С этим многие сталкивались когда “ломали” не онлайн игры на “на деньги” например с помощью ArtMoney и после приведенных выше действий таблицы со “взломами” переставали работать. Но с этим легко бороться, достаточно лишь один раз найти указатель на нужный нам адрес. Указатель - это адрес, в котором содержится адрес на интересующее нас значение. Адреса же указателей не изменяются в отличие от остальных. Так же не меняются смещения других адресов относительно адреса, на который указывает указатель. Таким образом, для написания чит программы нам нужно считать из указателя адрес, а потом по этому адресу модифицировать значение.

Перейдем к практике:

Рассмотрим написание чит программы на примере всем известного “SpeedHack”.

Как использовать “SpeedHack” через ArtMoney я расскажу вкратце так это руководство не по поиску багов а по написанию программ с их применением. Дам несколько советов по поиску значения скорости, так как в игре скорость является дробью, то тип значения выбираем с точкой. Размерность выбираем 4 байта, так как большинство значений в современных играх 4-х байтные (за некоторым исключением). Указав такие условия поиска, мы значительно его сократим. Затем устанавливаем значение поиска равное значению в игре, выполняем поиск. Заходим в игру, одеваем оружие на бег и отсеиваем новое значение. И так пока не останется одно значение. Добавляем его в таблицу и видим адрес этого значения в памяти (для использования “SpeedHack’а”, нужно установить желаемое значение и “заморозить” его). Допустим оно у нас равно 0134EA80. Но так ига использует DMA, просто адрес нас не устроит, так как при следующем входе в игру он изменится. Поэтому мы будем искать указатель на этот адрес, который как говорилось выше не изменяется. Как искать указатели я тут рассказывать тоже не буду, так как статья не об этом (читайте руководство пользователя ArtMoney). После поиска указателя он оказался равным 00D1B4F0 а смешение адреса в котором находится значение скорости равно 2356. Важно отметить, что указатель в ArtMoney указывается в шестнадцатеричной системе счисления, а смещение в десятичной. Ну да ладно, что же нам теперь делать с найденными значениями. А вот теперь-то мы и будем писать программу, которая по этим значениям будет модифицировать память игрового клиента.

Создадим новый проект в Delphi и разместим на форме элементы: Label, SpinEdit, Button, Timer всех по одному. Label будет содержать просто информацию, в SpinEdit будем задавать желаемое значение скорости, Timer будет осуществлять функцию “заморозки” (каждые 100 миллисекунд он будет обновлять наше значение), Button будет активировать/деактивировать Timer(“SpeedHack”).
Для работы с памятью игры мы будем использовать следующие API функции Windows:

Код:
function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL;

function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL;

function FindWindow(lpClassName, lpWindowName: PAnsiChar): HWND; stdcall;

function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: Pointer): DWORD; stdcall;

function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle;

function CloseHandle(hObject: THandle): BOOL;
Подробное описание функций и значения их параметров я приводить не буду, кого заинтересует, могут посмотреть MSDN.
Основными функциями записи и чтения из памяти являются: ReadProcessMemory и WriteProcessMemory.
Ну вот собственно исходный код таймера который изменяет значение по найденному выше указателю:

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  speed : single;      //Это значение скорости
  hWin: hWnd;
  ProcId: Cardinal;
  hProc: THandle;
  NBW: Cardinal;
  Adress: dword;       //сюда прочитаем адрес из указателя.
  readwrite: cardinal;

begin
  hWin := FindWindow(nil, WindowTitle);

      if hWin = 0 then begin
          Timer1.Enabled := False;
          Button1.Caption := 'Включить SpeedHack';
          exit;
          end;   //Проверяем запущена ли игра если нет то выключаем "SpeedHack"

  speed := SpinEdit1.Value;


  GetWindowThreadProcessId(hWin, @ProcId);
  hProc := OpenProcess(Process_All_Access, False, ProcId);
  ReadProcessMemory(hProc, ptr($00D1B4F0), @Adress, 4, readwrite); //Читаем адрес из указателя
  Adress := Adress + 2356; //Прибавляем к адресу смещение нашего значения

  WriteProcessMemory(hProc, ptr(Adress), @speed, 4, NBW); //Записываем желаемое значение по полученному адресу
  CloseHandle(hProc);
end;
Как оказалось все те так уж страшно, как было на первый взгляд. И если вдумчиво прочитать статью, думаю практически любой, хоть немного разбирающийся в программировании человек сможет написать подобную программу.

Полные исходники качаем отсюда:
Delphi: http://depositfiles.com/files/ea0x95861
C++ Builder: http://depositfiles.com/files/7y6ffd62v
C++ Builder and Delphi одним архивом
Не забываем оставлять комментарии по поводу статьи. Так же задавать вопросы, если они возникли. Постараюсь ответить всем.

Авторские права и условия распространения материала:
Автором материала является Тигрь, то бишь я. Статья может распространяться свободно но без каких либо изменений, с обязательным указанием моего авторства, и с приведенными выше ссылками на исходные коды программ.

Последний раз редактировалось Тигрь; 12.05.2016 в 09:04.

Вечность пахнет нефтью
 
Ответить с цитированием
Сказали спасибо:
K0ns0l (24.10.2019), michana123 (12.03.2018), cyp1 (12.08.2017), xeLa (10.07.2017), Nolimits12345 (20.06.2017), valaris (29.04.2017), Сергей А1m6 (11.03.2017), den1990 (22.01.2017), Альберт V12 (12.01.2017), yopgamer (31.10.2016), Анвар Ва (17.04.2016), kartez (14.02.2016), ноутбук (29.01.2016), nikolaevig (27.11.2015), Yaroslav_WoT (25.11.2015), Freak714 (13.11.2015), Gepart (18.10.2015), parkir9999 (20.04.2015), VLADIMIRWOLF (18.04.2015), kamaz_kartoxi (13.04.2015), Vlad2891 (08.04.2015), hudrogen256 (23.06.2014), hatsu (12.06.2014), AREC (29.04.2014), Shadle (28.02.2014), Ozzmy (17.02.2014), 777Dima777 (15.02.2014), lagerok (15.11.2013), *Love* (15.10.2013), BloodKora (15.10.2013), Внук (15.10.2013), ObiVanKenobi (15.10.2013), Dyavol (23.09.2013), wirusk (19.09.2013), Недоступно (13.09.2013), AIUKARD (10.09.2013), Недоступно (21.06.2013), Недоступно (25.04.2013), KASTALOM (23.04.2013), beezelcat (23.03.2013), broveymimo (25.12.2012), ShoTMah (15.11.2012), Недоступно (11.11.2012), ypss (11.11.2012), Недоступно (24.10.2012), Hippy (03.10.2012), Coca-Kola (28.08.2012), Недоступно (24.08.2012), BlackApple (06.08.2012), ActionForce (27.06.2012), saiga111 (22.06.2012), sanjainker (18.06.2012), Fe9 (16.06.2012), excimer92 (16.06.2012), Недоступно (01.06.2012), Molokos (27.04.2012), котопес (20.04.2012), Ванячок (07.04.2012), FalleG (04.04.2012), geol (22.03.2012), 6yJIk0 (19.03.2012), Tec (12.03.2012), !BleaK! (10.03.2012), Ksarbirus (09.03.2012), СтиляШка (08.03.2012), Недоступно (08.03.2012), vasaa (05.03.2012), Stewart (01.03.2012), Недоступно (27.02.2012), Недоступно (26.02.2012), Чучел0 (26.02.2012), az123az (24.02.2012), Недоступно (23.02.2012), Недоступно (21.02.2012), voroninasi (20.02.2012), TonyReordano (20.02.2012), Георгий8691 (19.02.2012), vlad196226 (18.02.2012), Недоступно (18.02.2012), rovik (14.02.2012), Дядя Вася (12.02.2012), TurnOff (11.02.2012), tte (03.02.2012), DaGGeR (31.01.2012), darkpdx (28.01.2012), Недоступно (27.01.2012), eagle991 (26.01.2012), luter (26.01.2012), 315920 (25.01.2012), Недоступно (25.01.2012), Bluewhite (25.01.2012), Ctac (24.01.2012), Недоступно (24.01.2012), Недоступно (24.01.2012), Chasing (23.01.2012), RWDimka (22.01.2012), CBM (22.01.2012), Недоступно (22.01.2012), armen508 (22.01.2012), 007Панк (21.01.2012), Magn (21.01.2012), STS (21.01.2012), maastak (21.01.2012), farale (21.01.2012), Rax (21.01.2012), Dimanich03 (21.01.2012), modik (21.01.2012), Недоступно (21.01.2012), Mumba (20.01.2012), GADYS (20.01.2012), Недоступно (20.01.2012), Darvin (19.01.2012), КоеКто (19.01.2012), Недоступно (19.01.2012), Недоступно (18.01.2012), [Nebo] (18.01.2012), failure_ (18.01.2012), Тан4ик (18.01.2012), Недоступно (18.01.2012), Недоступно (17.01.2012), lanch95 (17.01.2012), Мадара (17.01.2012), sirf (17.01.2012), osMANtus (16.01.2012), Notorious (16.01.2012), Недоступно (16.01.2012), Zekan (15.01.2012), Gunjubas (15.01.2012), Недоступно (15.01.2012), Недоступно (14.01.2012), PIO (14.01.2012), dr.alex (14.01.2012), Oops (14.01.2012), Недоступно (14.01.2012), DEM_44 (14.01.2012), gdl (13.01.2012), proba5555 (13.01.2012), Недоступно (13.01.2012), Nika (13.01.2012), Недоступно (13.01.2012), БухойКрот (13.01.2012), rechert (13.01.2012), Zemburovich (13.01.2012), Ringare (13.01.2012), DR_ThRaX (13.01.2012), Cherep (13.01.2012), Стасон (13.01.2012), fantast (13.01.2012), Stet (13.01.2012), Siliastr (13.01.2012), Недоступно (13.01.2012), Недоступно (13.01.2012), Недоступно (13.01.2012), Чипомпос (13.01.2012), Недоступно (13.01.2012), Недоступно (13.01.2012), zoomers (13.01.2012), Andrejj (13.01.2012), Недоступно (13.01.2012), miles900 (13.01.2012), crazysenia (13.01.2012), lakaters (12.01.2012), Недоступно (12.01.2012), Nize (12.01.2012), Барабуч (12.01.2012), Silent666 (12.01.2012), MasterNick (12.01.2012), MistaBasta (12.01.2012), Revoult (12.01.2012), Недоступно (12.01.2012), Earthian (12.01.2012), Big Bad Sensey (12.01.2012), Восьмеркин (12.01.2012), PiTT BuLL (12.01.2012), zertaul (12.01.2012), killer123 (03.12.2011), kosster (29.11.2011), Lonee (09.11.2011), Недоступно (29.09.2011), Pro_XBocT (24.09.2011), Bojan (02.08.2011), FaceOff (31.07.2011), Rusdenis (31.07.2011), TekkeN (18.05.2011), user999 (06.05.2011), HeuTpaT (18.03.2011), DrumBass (25.02.2011), Syntex (12.02.2011), Wise (15.01.2011), Euphoria (14.01.2011), murs (12.01.2011), ReDMau (12.01.2011), Недоступно (10.01.2011), Dr. Cox (10.01.2011), Puck (09.01.2011), Недоступно (09.01.2011), piy-piy (09.01.2011), Jlo6aH (09.01.2011), Vishtar (09.01.2011), Bars (09.01.2011), Richard (09.01.2011), Rukus (09.01.2011)


Старый 09.01.2011, 10:25   #2
Houp
Нуб
Аватар для Houp
OFFLINE
Регистрация: 01.03.2010
Возраст: 28
Сообщений: 0
Благодарностей:
27 всего
Мнения: -3486
Репутация: 82

Огромный сяп тебе и уважение от меня, спасибо.
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 09.01.2011, 11:50   #3
Richard
На доске почёта
Аватар для Richard
OFFLINE
Регистрация: 27.02.2009
Сообщений: 1
Благодарностей:
165 всего
Мнения: + 579
Репутация: 496

Как время будем, обязательно прочитаю. Спасибо большое :)
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 09.01.2011, 14:48   #4
Vishtar
Лентяй!
Аватар для Vishtar
OFFLINE
Регистрация: 28.03.2009
Сообщений: 333
Благодарностей:
919 всего
Мнения: + 6790
Репутация: 2534

Хороший гайдик, а что это такое?:
Цитата:
function CloseHandle(hObject: THandle): BOOL;
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 09.01.2011, 14:52   #5
Bars
Нуб
Аватар для Bars
OFFLINE
Регистрация: 15.04.2009
Сообщений: 4
Благодарностей:
131 всего
Мнения: + 1584
Репутация: 394
Отправить сообщение для Bars с помощью ICQ

тип переменной
 
Ответить с цитированием
Сказали спасибо:
Vishtar (09.01.2011)
Старый 09.01.2011, 15:18   #6
Puck
Разбанен. На испытательном сроке.
Аватар для Puck
OFFLINE
Регистрация: 23.10.2010
Сообщений: 615
Благодарностей:
2,862 всего
Мнения: + 5105
Репутация: 8587

Спасибо большое, очень полезно, особенно с указателями)не знал.
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 09.01.2011, 15:37   #7
Dr. Cox
Dr. Cox - нелюбимчик форума RF-Cheats
Аватар для Dr. Cox
OFFLINE
Регистрация: 18.12.2009
Сообщений: 701
Благодарностей:
3,156 всего
Мнения: -7258
Репутация: 1985
Отправить сообщение для Dr. Cox с помощью Skype™

Тигрь заслуживает уважения и "n"-постов за этот гайд.

!New! Не усики, а пропуск в трусики. Не хач, а русский.
http://ipic.su/img/img7/fs/IMAG0132.1423515835.jpg


Что значит УНИВЕРСАЛЬНЫЙ протеин?
Цитата:
Сообщение от Воздушный Посмотреть сообщение
Универсальный да потому что, тебе везде его посоветуют.
До слез

Цитата:
Сообщение от Elgato Посмотреть сообщение
Да Пуппару хуй поймешь, у него как-то все неоднозначно. Если ебешь бабу в жопу-пидор, а если ебешь мужика в жопу и представляешь бабу-норм мужик. Думаю, вся фишка в воображении.
Вся суть нерусей

Подраздел Dr. Cox-а
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 10.01.2011, 10:24   #8
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 963
Благодарностей:
34,735 всего
Мнения: + 22999
Репутация: 110868
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Тигрь +80 постов

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

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Сказали спасибо:
Dr. Cox (10.01.2011), Тигрь (10.01.2011)
Старый 10.01.2011, 10:51   #9
michwarrior
Освоившийся
Аватар для michwarrior
OFFLINE
Регистрация: 13.05.2007
Сообщений: 34
Благодарностей:
24 всего
Мнения: + 87
Репутация: 91
Отправить сообщение для michwarrior с помощью ICQ

Эмм.. спасибо конечно за гайд. Но он давно уже был выложен на сайте fserver.ru . (Это там где впервые появился Rf helper) Статью ты конечно писал сам, но суть, да и исходник(по крайней мере большая часть) взяты от туда. Хотя программа проста и в принципе ты конечно мог написать и свой вариант таким же как тот что на fserver.ru К сожалению тот форум обновили и база утрачена. Это уже в принципе не столь важно. Раз уж зашла речь о написании программ задам такой вопрос присутствующим:

Не могли бы вы объяснить как программы типа рф логин подключались к серверу.
Хотелось бы алгоритм на делфи от кнопки начать до открытия клиента с приведением некоторых процедур. хотя бы для старого апа. Я понимаю что возможно это коммерческая тайна, но ведь с вводом Frosta алгоритм должен был измениться? Вобщем помогите кто чем может. Информацию спрашиваю для общего развития.

С уважением michwarrior
 
Ответить с цитированием
Сказали спасибо:
Тигрь (10.01.2011)
Старый 10.01.2011, 13:01   #10
Тигрь
Крестный отец всех читеров
Аватар для Тигрь
OFFLINE
Регистрация: 02.04.2008
Сообщений: 3,981
Благодарностей:
35,829 всего
Мнения: + 18850
Репутация: 100877

Цитата:
Сообщение от michwarrior Посмотреть сообщение
Эмм.. спасибо конечно за гайд. Но он давно уже был выложен на сайте fserver.ru . (Это там где впервые появился Rf helper) Статью ты конечно писал сам, но суть, да и исходник(по крайней мере большая часть) взяты от туда. Хотя программа проста и в принципе ты конечно мог написать и свой вариант таким же как тот что на fserver.ru К сожалению тот форум обновили и база утрачена. Это уже в принципе не столь важно.
Нет писал полностью сам статью. Да и исходники тоже. Просто методы то одни используются в таких программах по этому и похоже.

Цитата:
Сообщение от michwarrior Посмотреть сообщение
Раз уж зашла речь о написании программ задам такой вопрос присутствующим:

Не могли бы вы объяснить как программы типа рф логин подключались к серверу.
Хотелось бы алгоритм на делфи от кнопки начать до открытия клиента с приведением некоторых процедур. хотя бы для старого апа. Я понимаю что возможно это коммерческая тайна, но ведь с вводом Frosta алгоритм должен был измениться? Вобщем помогите кто чем может. Информацию спрашиваю для общего развития.
Ну тут нужно изучить протокол подключения ланчера к серверу. Там всего 10 пакетов. Для изучения протокола понадобится отладчик ну и снифер не помешает. Для тех кто не владеет такими инструментами это будет не так то просто. А алгоритм на вряд ли кто то тебе даст. Придется копать самому.

Вечность пахнет нефтью
 
Ответить с цитированием
Сказали спасибо:
Dr. Cox (11.01.2011)
Ответ


Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересует кодинг чит-программ killbond Взлом и программирование 8 31.07.2011 21:01
[INJECTion] Часть инжектов LumeR Программы и боты для PW 1 30.06.2011 11:46
[Guide] Баг при создании акка. Часть 2. Dr. Cox Архив (Баги, Читы, Эксплойты БЕЗ ХАЙДА) 3 06.10.2010 21:40

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