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

BadBoy

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

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

  • Посещение

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

  1. Доброго всем дня.

    Игра Age of Empires II Definitive Edition v101.102.5558.0, после нескольких обновлений, в игре стало невозможно найти значения ресурсов (они зашифрованы). Нахожу экранное значение, а дальше как в сказке, чем больше просматриваю код игры, тем страшнее становится.

    Несколько раз просматривал видеоурок 11. Взлом шифрованных значений, но к сожалению моих познаний не хватает чтоб освоить код игры AoE2DE.

    Итак я нашел инструкцию которая обращается к адресу экранного значения:

    Спойлер

    Поднялся выше по коду игры

    Подскажите пожалуйста, как мне действовать дальше?

  2. Цитата

    А что ты пишешь в таблице в указатель Item?

    Версия игры 3.00.8045

    А в указатель , хочу чтоб скрипт писал адрес из регистра rcx, со смещением 0с.

     

    Спасибо за быстрый ответ. Сейчас попробую твой вариант.

     

    6 часов назад, Partizan сказал:

    Я переделал твой скрипт так как привык делать я.

    Ваш вариант, у меня почему-то, тоже не работает.

    Спойлер

    spacer.png

     

     

     

    Partizan,

    Всё-таки ваш вариант сработал.

    Снова моя ошибка была. Я записывал адрес как указатель, а нужно было записать простым адресом.

    Благодарю за помощь.

     

    Ещё хотел узнать, вы в конце скрипта, в колонке [DISABLE] прописали команду unregistersymbol(*), таким образом вы удалили два ранее созданных registersymbol(_item) и registersymbol(Items)?

  3. Всем привет.

    Я новичёк, поэтому прошу не судить меня строго. Все мои познания, в основном благодаря этому сайту. Но информации так много, в учебных видеороликах вроде всё понятно и легко, но когда начинаеш писать свой скрипт, не всегда всё получается как нужно.

    В игре присутствуют юниты, которые могут загружать себе в определённую ячейку разные предметы. Если выделить этого юнита (лкм) и у него в ячейке будет какой-либо предмет, то сработает инструкция. Я эту инструкцию нашёл, вот она:

    Спойлер
    Спойлер

    Регистры

    В регистр RAX - записывается ID предмета (значение в Hex), а в регистр RCX - базовый адрес (к которому нужно прибавить смещение 0с).

     

    В дисассемблере жмакнув на ней (пкм) и выбрав опцию "показать адреса к которым обращается эта инструкция", я без труда (зная ИД предмета) нахожу нужный мне адрес. Поэтому решил автоматизировать этот процес с помощью скрипта. Но допустил какую-то ошибку и указатель созданный моим скриптом не отображает никаких адресов.

    Спойлер

    spacer.png


    Собственно в этом и есть моя просьба о помощи.
    Вот мой код, подскажите пожалуйста, что в нём не так:

    Спойлер
    [ENABLE]
    
    aobscanmodule(_Items,Game.exe,CB CC CC CC CC CC CC 8B 41 0C C3 CC) // should be unique
    alloc(newmem,$1000,_Items)
    alloc(_pitem,8)
    label(returnhere)
    label(originalcode)
    label(exit)
    
    registersymbol(_Items)
    registersymbol(_pitem)
    
    newmem:
      cmp rax,0
      jne originalcode
      mov [_pitem],rcx
      add [_pitem],0c
    
    originalcode:
      mov eax,[rcx+0C]
      ret 
      int 3
    
    exit:
      jmp returnhere
    
    _Items+07:
      jmp newmem
    returnhere:
    registersymbol(_Items)
    
    [DISABLE]
    
    _Items+07:
      db 8B 41 0C C3 CC
    
    unregistersymbol(_Items)
    unregistersymbol(_pitem)
    dealloc(newmem)
    

     

     

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

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

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