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

Foxhound

Пользователи
  • Постов

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

  • Посещение

Сообщения, опубликованные Foxhound

  1. Привет. Делаю самые первые шаги взлома, помогите пожалуйста новичку.
    Игра старая, пошаговая стратегия Kursk'43 от HPS Simulations. Нужна возможность менять параметры выбранного юнита, численность и некоторые другие.
    Нашёл в СЕ адрес численности одного юнита, потом нашёл инструкцию, которая его меняет на запись, она только одна.
    kursk43.exe+95C8D - 8B 6F 10  - mov ebp,[edi+10]
    Если по ней включить Find out what addresses this instruction accesses, то по каждому клику в игре на любом юните в окошке СЕ появляется адрес его численности. Сделал из шаблона скрипт:

     

    Spoiler
    
    [ENABLE]
    alloc(newMem, 2048)
    label(returnHere)
    newMem:
        mov [edi+10],#100
        mov ebp,[edi+10]
        mov [esp+1C],eax
        jmp returnHere
    kursk43.exe+95C8D:
        jmp newMem
        nop
        nop
    returnHere:
    [DISABLE]
        
    kursk43.exe+95C8D:
        mov ebp,[edi+10]
        mov [esp+1C],eax
    dealloc(newMem)

     

     

    С ним по каждому клику на любом юните его численность становится 100. Но я хотел, чтобы число 100 не ставилось автоматом, а можно было менять вручную из таблицы, чтобы когда включил скрипт, значение установилось текущее, поменял вручную число в таблице - изменилось. Если правильно понимаю (статьи читал, видеоуроки смотрел), в скрипте нужно скопировать куда-то текущее значение, там его изменить и вернуть обратно. Пробовал сначала сделать сам, не получилось, потом смотрел, как сделаны похожие скрипты на другие игры, которые нормально работают, но у меня всё равно ничего не получается, число в таблице появляется, меняю, но кликаю юнита снова и оно восстанавливается как было или СЕ пишет ошибку создания скрипта или игра виснет. Помогите пожалуйста.

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

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

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