Автор Тема: проблемка с плагином  (Прочитано 3866 раз)

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
проблемка с плагином
« : Февраль 23, 2014, 06:55:39 pm »
Всем привет, я написал маленький плагин отменяющий вызов читов в gta sa, но вот я хотел узнать насчет такой штуки:
Я глянул вот этот урок - http://gtabuilder.ru/zamena-peremennyx-v-gta-vice-city/ там функция вызывается:
case DLL_PROCESS_ATTACH:
        Replace_varIconSize();
        break;
Я решил написать также у себя т.е. просто вот так:

void cheat() {
   *reinterpret_cast<WORD *>(0x438517) = 0x9090;
};

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                )
{
   switch (ul_reason_for_call)
   {
   case DLL_PROCESS_ATTACH:
   
      cheat();
     
    break;
   case DLL_THREAD_ATTACH:
   case DLL_THREAD_DETACH:
   case DLL_PROCESS_DETACH:
      break;
   }
   return TRUE;
}
Но вот cheat не вызывается, но если писать вот так в DLL PROCESS_ATTACH:
SetTimer(0,0, 1, (TIMERPROC)cheat); то все работает, можете объяснить в чем у меня проблема когда я пишу просто cheat(); ?

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: проблемка с плагином
« Ответ #1 : Февраль 23, 2014, 07:28:24 pm »
.text:00438516 048 D8 1D 80 7C 68 00                                               fcomp   fNull_1
Как оно вообще не вылетело?

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
Re: проблемка с плагином
« Ответ #2 : Февраль 23, 2014, 07:32:05 pm »
Sektor, я про gta sa пишу. А ты кинул строку из базы vc.
там вот что:
.text:00438517 02C                 jz      short loc_438530 ; Jump if Zero (ZF=1)
т.е. через reinterpret_cast меняется команда jz на 2 nop.
« Последнее редактирование: Февраль 23, 2014, 07:36:42 pm от mike43842 »

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: проблемка с плагином
« Ответ #3 : Февраль 23, 2014, 07:41:49 pm »
а VirtualProtect - точно не забыл, изменить атрибуты памяти для записи?

Оффлайн mike43842

  • Прохожий
  • *
  • Сообщений: 110
  • Репутация: +1/-0
    • mike43842
    • Просмотр профиля
    • lol
Re: проблемка с плагином
« Ответ #4 : Февраль 23, 2014, 08:01:18 pm »
Нет, этого не писал, а разве это относится к той проблема которая у меня? Функция то работает, только когда написан таймер.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: проблемка с плагином
« Ответ #5 : Февраль 23, 2014, 08:39:23 pm »
Цитировать
Нет, этого не писал, а разве это относится к той проблема которая у меня? Функция то работает, только когда написан таймер.
Если функция работает, при таймере, значит доступ для чтения/записи уже изначально открыт. Но тут мне кажется, только одно когда запуск произошел, сперва ваши нопы прописались, а затем уже выделились команды из exe sa. С такой проблемой еще не сталкивался, но нужно будет по узнавать до точности.