Сори, если неясно рассказал
Дело вот в чем: пытаюсь взломать например золото в java-игре age of civilizations 2
https://prnt.sc/m1yhkr
Нахожу значение, выясняю, какие инструкции обращаются к значению моего золота, решаю инжектить на той, которая работает только с золотом игрока, чтобы не пришлось отфильтровывать среди 400 ботов.
https://prnt.sc/m1yjls
Вижу, что инструкция находится в динамической памяти, поэтому использую AOB injection.
Вот мой скрипт:
Вроде скрипт работает, золото накручено, указатель сделан
https://prnt.sc/m1ypaj
Но теперь я запускаю скрипт и уйду в АФК на 2-3 минуты(Включу автопропуск ходов ибо игра пошаговая)
И через время я замечаю, что золото начало уменьшатся, захожу в дизассемблер, чтобы посмотреть, что случилось.
А случилось то, что игра сама убрала мой jmp(Cheat engine все еще видит скрипт активированным), но в этот раз мне крупно повезло, инструкции почему-то остались на месте.
https://prnt.sc/m1yr9t
Перезапускаю скрипт и включаю еще автопропуск ходов на пару минут
https://prnt.sc/m1yuw8
Прошло еще пару минут, золото опять начало уменьшатся, в этот раз повезло меньше, игра затерла мой jmp но инструкции на свое место не вернулись.
https://prnt.sc/m1yw2r
Большую проблему устраивает так же то, что если я отключу(уже нерабочий) скрипт, Cheat engine попытается восстановить код в адрес, помеченый как "MONEY" где игра уже не ждет того кода, иногда вызывая вылет.