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

dddeamon

Стажёры
  • Постов

    6
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены
  1. Спасибо помогло. Доетого делал так [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) //2kb should be enough label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: //fadd dword ptr [ecx+eax*4] значение 2 fadd dword ptr [ecx+eax*4] //добавляет в 2 раза больше значение = +4 fadd dword ptr [ecx+eax*4] //добавляет в 2 раза больше значение = +8 lea eax,[ecx+eax*4] exit: jmp returnhere "EMPIRES.EXE"+5E7DA: jmp newmem nop returnhere: [DISABLE] "EMPIRES.EXE"+5E7DA: fadd dword ptr [ecx+eax*4] lea eax,[ecx+eax*4] А вот и полный код с проверкой на поинтер на дерево и мясо, проверка проходит в одной функции. Игра на немецком языке поетому поинтер может быть другим. [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) //2kb should be enough label(returnhere) label(holz) label(fleisch) label(exit) newmem: push ebp lea ebp, dword ptr [eax] cmp ebp, 0A4C614C pop ebp je holz push ebp lea ebp, dword ptr [eax] cmp ebp, 0A4C6148 pop ebp je fleisch jmp returnhere holz: fstp dword ptr [eax] mov dword ptr [eax], (float)5000 // перезаписать ret 000C jmp exit fleisch: fstp dword ptr [eax] mov dword ptr [eax], (float)5000 // перезаписать ret 000C jmp exit exit: jmp returnhere "EMPIRES.EXE"+5E7E0: jmp newmem returnhere: fstp dword ptr [eax] ret 000C [DISABLE] "EMPIRES.EXE"+5E7E0: fstp dword ptr [eax] ret 000C
  2. игра: Age of Empires Попробовал, идет только вот значение сбрасывает на 0. Что делать flot -100?
  3. Нашёл в игре значение дерева. Потом нашёл поинтер. Нашёл функцию где он изменяет значение. вот она mov ecx,[ecx+50] fld dword ptr [esp+08] movsx eax,ax fadd dword ptr [ecx+eax*4] lea eax,[ecx+eax*4] fstp dword ptr [eax] <---------------здесь ловится адрес дерева ret 000C Хочю сделать чтобы добавлялось дерево на 100 или 1000 больше пробывал через mov ecx,[ecx+50] fld dword ptr [esp+08] movsx eax,ax fadd dword ptr [ecx+eax*4] lea eax,[ecx+eax*4] mov dword ptr [eax], {float}100 <--------------------------------добавляем 100 fstp dword ptr [eax] <---------------здесь ловится адрес дерева ret 000C всё работает как обычно. Может быть проблема в ax регистре? Кто может помочь. Функция обрабатывает много параметров.
  4. Есть вот такой код mov ecx,[ecx+50] fld dword ptr [esp+08] movsx eax,ax fadd dword ptr [ecx+eax*4] lea eax,[ecx+eax*4] fstp dword ptr [eax] <---------------здесь ловится адрес денег ret 000C Значение флоад [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) //2kb should be enough label(returnhere) label(originalcode) label(exit) newmem: originalcode: mov dword ptr [eax], {float}100 <--------------------------------добавляем 100 fstp dword ptr [eax] ret 000C exit: jmp returnhere "EMPIRES.EXE"+5E7E0: jmp newmem returnhere: [DISABLE] fstp dword ptr [eax] на ret значение востанавливается. Как можно ето обойти?
×
×
  • Создать...

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

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