Maxs Опубликовано 24 сентября, 2014 Поделиться Опубликовано 24 сентября, 2014 Добрый день, форумчани Я вернулся...Я нашел интересную статью ... создание библиотеки - чита для GTA VCВот код: library MoneyAdds;{ GTA-VC 1.1 Плагин для добовления денег }uses Windows;type // определяем свой тип (указатель целых чисел) P_Integer = ^Integer;var GTA_VC_Handle : THandle; CurrentMoney : Integer; keyUp : boolean;const // тут твой найденный адрес «денег» Address_Money = $0094ADD0;{$E .asi}//—- Эта процедура будет вызываться таймером —procedure Timer_begin;begin // Нажатие и отпуск «M» if not GetKeyState($4D) < 0 then keyUp := true; if (GetKeyState($4D) < 0) and (keyUp = true) then begin // Читаем деньги из GTA-VC и присваиваем в CurrentMoney CurrentMoney := P_Integer(Address_Money)^; // Записываем 1000 + текущие деньги P_Integer(Address_Money)^ := CurrentMoney + 1000; keyUp := false; endend;//———————————————————–begin GTA_VC_Handle := FindWindow(nil,’GTA: Vice City’); if GTA_VC_Handle <> 0 then begin SetTimer(GTA_VC_Handle,0,25,@Timer_begin); end;end. Ссылка на статью - перейти Ссобственно код работает, но есть вопросы:1. Как быть если адрес DMA (пример), теоритически можно работать с оффсетами или сигнатурой, но теоретически я затрудняюсь это реализовать.2. Есть какой нибудь небольшой хук Direct9 под Delphi? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 25 сентября, 2014 Поделиться Опубликовано 25 сентября, 2014 Оффсеты (они же - смещения в указателе) - вообще не проблема, т.к. все, что нужно, это пройтись (функция ReadProcessMemory) от базового адреса до последнего смещения, тем самым получив нужный (текущий) адрес. А дальше, используя функцию WriteProcessMemory - пишем по полученному адресу нужное значение. С сигнатурами несколько сложнее... т.к. придется читать регион памяти, сравнивать данные, и записывать полученные блоки... собственно, вот и вся работа с сигнатурой) На выходе получаем адрес, и работаем с ним как обычно. По функциям ReadProcessMemory и WriteProcessMemory - можно почитать в MSDN или где-нибудь еще, а по поводу сигнатуры, можно попробовать пример от ArxLex Что же касается хука DirectX, то можно покопаться в Google. Или попробовать специально подготовленным заголовочником (хидером) DirectX 9.0 Delphi DirectX 9.0 headers / SDK UPD: Кстати, по поводу работы со смещениями, и вообще - работой с памятью, можно почитать старенькие статьи на примерах трейнеров от товарища g-l-u-k. А также статью про написание трейнеров для DMA и не-DMA игр от br0k3n_MinD. Да и вообще, статьи и примеры от Team-X - я на них учился (привет MasterGH, Xipho, SER[G]ANT) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения