SergBrNord

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    5

SergBrNord last won the day on April 24

SergBrNord had the most liked content!

Репутация

23 Novice

О SergBrNord

  • Звание
    Продвинутый пользователь
  1. Всем опять и снова привед! Продолжаем мучать старенькую игрушку "Гарри Поттер и Философский камень" =) На сей раз чисто умозрительный вопрос по таймерам, использующихся на урока по обучению заклинаниям. Вот так это выглядит: Ломаем таймер в нижнем углу. За таймер отвечают три значения: закрашивание полоски красным цветом, тип float, реализовано декрементацией (~14->0); скорость воспроизведения звука часов, тип float, реализовано декрементацией (~14->0); сам таймер, тип float, реализовано инкрементацией (0->~14). Окно обращений инструкций: Во всех трёх инструкциях работа идёт с одним и тем же адресом; под адресу не структура, а значение. Листинг кода №1: Листинг кода №2 (инструкции рядом): И вопросы, которые меня мучают: Если писать скрипт, то, НЯП, надо работать со стеком, так как показывал srg91; т.е. заместить значение, вкладываемое инструкцией "fld dword ptr [esp+10]"? Если работать со стеком, что будет правильнее в использовании – просто положить в стеке значение сверху или вытолкнуть и затем положить своё? Как тут организовать фильтр? При заморозке адреса таймер, подсчёт очков начинает работать некорректно. Каким образом это может быть завязано на таймер? Как работает корректный подсчёт – игрок рисует изображение по контуру мышкой, не открывая ЛКМ до завершения, а затем игра повторяет его движение и выставляет очки. Как работает некорректный подсчёт – игрок рисует изображение по контуру мышкой, не открывая ЛКМ до завершения, а затем игра не повторяет движение, а соединяет две конечных точки. Вот так это выглядит: Т.е. тут что-то вроде запоминания положения курсора в определённой точке относительно таймера? P.S. Игрушка сделана на Unreal Engine, может кого на мысль натолкнёт =)
  2. "В угол" . Garik66 1. Да, я видел эту инструкцию, но никакой толковой мысли не возникло, кроме "На кой здесь с единичкой сравнивают?" =) 2. Тут так много чего пишется в регистры. Скорее всего, завтра ещё одна тема будет с тупыми вопросами типа "как это готовить?"
  3. Проверил. Не работает. "В угол" . Garik66 По 1 скрипту – интерпритатор ругался на: cmp [eax+4],(float) 50 //50 Поправил на: mov [eax], (float)50 Также не сработал. По 2 скрипту – во время первого здоровье прибавилось, но после получения урона игра крашнулась (я насиловал игру несколькими скриптами подряд). Во время второго запуска - полёт нормальный.
  4. Нет, не крашнулось Данный конкретный случай - инструкция работает по 5 адресам.
  5. Сейчас указатель на таймер найду и опробую. Есть, там, где в теплицу чешешь, это сразу после Пивза. В лабиринте есть как и растения хищные, так и гнумы в секретках. P.S. У тебя, скорее всего, консоль включена. Это как-то через файлы конфигурации производится.
  6. Он пустой. Там ничего нет на момент срабатывания инструкции. Если бы что-то было, вложил бы в стек.
  7. 1. При попытке запустить в окошке эта собака крашится. 2. https://cloud.mail.ru/public/FxZJ/VXcMsjAB5 Сэйвы: бежим вперёд и огребаем; просто кинуть в документы; в архиве 2 варианта.
  8. Всем привед! Продолжаю ломать старенькую игрушку "Гарри Поттер и Философский камень" =) Сейчас взламываю здоровье. И возникла проблема с инструкцией fstp. НЯЗ, эта инструкция перемещает из регистра ST данные в регистр-цель. И вот как работать с этим регистром ST? Вот что я пытался провернуть (в структуре, находящейся в eax по смещению 4 – максимальное здоровье, в начале – текущее здоровье; всё типа float; инструкция работает с несколькими адресами, поэтому присутствует фильтр): P.S. Вариант с использованием инструкции fstp возник после неудачи с этой попыткой: Почему-то не срабатывает и отладить не могу - при попытке запустить игру в окне крашится напрочь.
  9. Нет. 0 реакции, побегал, поиграл – без проблем. P.S. Это привет от CE остался.
  10. Уже дошло. НЯП, нужно удалить в двух местах:
  11. У меня полная антология от R.G.Recoding, но сигнатура подошла как родная. А вот что я получил (делал ручками): Что интересно, после доработки сигнатуры, место в коде находится точно, но переход не прописывается никак. Вот как это выглядит:
  12. Попробовал поиском по массиву - 0 результатов, хотя AoB Scan выдаёт цифру в 4 совпадения.
  13. Достаточно явно написано. Но мне нужно пояснение. Я сейчас читаю параллельно статью Ридиана с форума CE. У него есть такой пример: Я предполагал, что убираются одинаковые группы байт. Но глянул чуть подробнее — а там совсем не одинаковые группы байт. Т.е. идёт замена непосредственно адресов, которые используются в коде. Но у меня такого нет.
  14. Всем привет! Столкнулся с интересной проблемой. Есть такая старенькая игрушка "Гарри Поттер и Философский камень" =) Пытался сломать значение бобов в этой игрушке и получил в итоге: INJECT,Core.dll,ОШИБКА: Не удалось найти уникальный массив байт. Опробованный код "8B 08 89 0A C2 08 00" Насколько я понимаю, CE требуется уникальный массив байт, он же AoB. Пытался добавить вручную байт, получилось что-то вроде этого: aobscanmodule(INJECT,Core.dll,"8B 54 24 04 8B 08 89 0A C2 08 00") // should be unique Всё равно отказывается работать. Как таки получить уникальный массив байт? Весь текст скрипта полностью:
  15. Не буду оригинален - прошу посмотреть Prince of Persia: Forgotten Sands =) Времени нет толком доломать из-за работы, так хоть на видео посмотрю.