Автор Тема: Обновление "думанье" обьекта.  (Прочитано 2385 раз)

Оффлайн Jak łaska za praca

  • Прохожий
  • *
  • Сообщений: 58
  • Репутация: +1/-0
  • Как украшение на торт
    • aktel999
    • Просмотр профиля
Обновление "думанье" обьекта.
« : Февраль 20, 2014, 04:35:27 am »
Извините если не доглядел. Найдена ли функция которая занимается обновлением обьектов'а? Не извращаться ли мне с таймером дополнительно запоминая старые дынные объектов которые не должны обновляться сейчас привязывая их к кадрам.
Украшаю торты на своих вечеринках, классных вечеринках.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Обновление "думанье" обьекта.
« Ответ #1 : Февраль 20, 2014, 04:54:58 am »
Конечно, это называется процесс:

Вы можете глянуть эту статью.

Суть заключается в следующем , у нас есть функция, которая делает подмену на свою, это путем того что в память игры, где расположена функция разработчиков записываем, прыжок jmp с адресов на свою:


Код: C++
  1. void injectFunction (DWORD address, DWORD function) {
  2. DWORD _old;
  3.     VirtualProtect((LPVOID)address,4,  PAGE_READWRITE, &_old);
  4.     BYTE * patch = (BYTE *)address;
  5.     *patch = 0xE9;    // JMP
  6.     *(DWORD *)(patch+1) = (function-(address+5));    
  7.      VirtualProtect((LPVOID)address,4, _old, &_old);
  8. }



Для примера мы объявляем такую функцию:


Код: C++
  1. void Update() {
  2.  
  3. //Тут наш любой код, который будет постоянно вызываться...
  4.  
  5. }



Код: C++
  1. //Заменяем функцию на нашу
  2. //по адресу 0x043E490, располагается свободная функция, которая в холостую вызываться в процессе, оно же как и от рисовка.
  3. //С первым параметров все ясно, второй параметр это адрес уже нашей функции, в результате мы сделаем подмену.
  4.  
  5.           injectFunction(0x043E490, (DWORD)Update);


Вот собственно и все, более подробно вы можете глянуть эти участки использую программу IDA pro, введя адрес используя кнопку G.

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Обновление "думанье" обьекта.
« Ответ #2 : Февраль 20, 2014, 05:30:53 am »
И как вы друг друга поняли...  ;D