Перейти к содержанию

Delphi - нужна помощь по настойке dll(.asi)


Рекомендуемые сообщения

Добрый день, форумчани :) Я вернулся...

Я нашел интересную статью ... создание библиотеки - чита для 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?

 

 

Ссылка на комментарий
Поделиться на другие сайты

Оффсеты (они же - смещения в указателе) - вообще не проблема, т.к. все, что нужно, это пройтись (функция 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) :)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.