-
Постов
8 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Adouken
-
-
Почему глупость-то? Автор нашел инструкцию, которая выполняется при нажатии, туда заинжектить код активации скрипта, в чем проблема? Вот только я не могу подсказать автору как через label управлять читом, я через CE мало чего делал.
Аналогично, у меня в голове полное и четкое представление идеи, а вот знаний языка не хватает, чтобы довести до ума как надо. Мучаю Xipho в личке, он помогает, может что-то и получится.
Идея уже реализована на половину: после нажатия клавиши и "отлова" той инструкции, я уже прицепил к ней свой код, который просто пишет в адрес очков хода нужное мне значение ходов. Т.е. для одного персонажа я уже получил, что хотел. Но мне нужно прицепить туда не запись в адрес, а замену инструкции, которая вычитает очки хода. Чтобы это сделать, надо на нее как-то сослаться...указателем или сигнатуркой, я не знаю как с ними работать в ассемблере.
Более чем уверен, что в Lua СЕ Эту задачу можно решить за 5 минут, т.к. там можно писать полноценные функции, обрабатывать указатели и смещения, а вот как провернуть на уровне ассемблера...
Я, честно говоря, тоже не понял, что автору конкретно нужно, но если то, о чем сказал Xipho, то не проще выделить и зарегистрировать в одном скрипте байт, а в другом - проверять его значение, и выполнять нужные действия?
Ну, допустим, у нас есть два скрипта ("А" - где мы выделяем один байт под флаг, и "Б" - в котором должен проверяться флаг). Добавляем в таблицу адрес с нашим флагом, создаем на него две горячие клавиши:
NumPad 1 - Установить значение на "1" (единицу)
NumPad 2 - Установить значение на "0" (ноль)
И в скрипте "Б" проверять, если флаг равен единице - условие истинно - выполняем нужные действия, если нет - считаем, что скрипт выключен, и ничего не делаем.
Оба скрипта при этом должны быть активированы вместе - изначально, и не выключаться до завершения работы с ними, или с игрой.
Я уже писал, что игра жестко хукает все клавиши, работают только альтаб и альтконтдел. Если бы можно было назначить хоткеи в СЕ, не родилось бы всей этой заморочки и я уже готовый код, активировал хоткеями))
UPD. Всем спасибо кто участвовал, благодаря приложенному усердию поставленную задачу решил. ОГРОМНОЕ спасибо Xipho за помощь, без него ни за что бы не вышло.
-
Я так понимаю автор хочет, уже нарисованной разработчиками кнопкой в игре вкл/выкл чит? Если это так, то необходимо искать код, который выполняется при ее нажатии. Опишите что за кнопка, за что отвечает? Меняется ли какой-то параметр при её нажатии?
. Выделить байт на индикацию вкл/выкл чита, и менять его, когда нажимается кнопка.
Ну или создать поток и там вызывать GetAsyncKeyState www.cheatengine.org/keypresstut.php
Вы все верно поняли. Кнопка отвечает за изменение стойки персонажа бег/шаг. При нажатии кнопки меняется "дальность хода" персонажа при одинаковых очках хода. Поиском неизвестного значения, переключая кнопкой стойки я отсеивал пока не нашел нужный адрес, далее на этот адрес ставлю бряк на запись и снова нажимаю кнопку - выскакивает инструкция. Вот появление этой инструкции в моем плане и должно служить активацией написанному коду.
-
А если чекбокс на активацию поставить ??? ну раз игра сворачивается и можешь что то отсеивать,значит можно и активировать чекбоксом не чего не нажимая не каких кнопок.
Можно, это да, но тут вся задумка строилась исходя из сложных обстоятельств: игрушка Код доступа: РАЙ. Штука очень атмосферная, пошаговая стратежка в стиле киберпанк. Но есть одно существенное НО: разрабы упоролись и сделали ее ПОЛНОСТЬЮ пошаговой. Игровой мир представлен несколькими локациями, довольно обширными и ходить по ним приходится тоже пошагово, даже вне боя. А вот бои проводить хочется по-честному, т.е. пошагово. Вот и получается, что мне нужно будет часто включать и отключать чит на ходы, чтобы так сказать соблюдать честность прохождения. Альтабом я это делать замучаюсь.
-
Про рисование речи не было. Просто чтобы люди понимали, что кнопка часть графического интерфейса игры, а не хоткей, я использовал слово нарисованная.
-
А я вот что-то не совсем понял, что нужно сделать.
Keng привет! Твои уроки на ютубе хороши, мои заморочки в геймхакинге начались совсем недавно именно с них. Потом уже на канал Xipho наткнулся. Учусь у Вас обоих потихоньку.
Что касается задачи, я уже не знаю как объяснить понятнее: в игровом интерфейсе есть кнопка, нарисованная, при нажатии на нее совершается определенное действие. Как известно любое действие это инструкция. Я хочу грубо говоря сделать хук инструкции, чтобы как только она (инструкция) всплывает активировался мой, уже написанный скрипт на другое действие, в данном случае отмена трат очков хода.
Иначе говоря мы свои "читы" привыкли активировать или в CE поставив крестик напротив скрипта, либо хоткеем, заданным в том же СЕ, а тут стоит задача, привязаться к игровому событию, которое происходит после взаимодействия с игровым интерфейсом.
-
Всех приветствую и прошу посодействовать в реализации вот такой штуки:
Есть старая игрушка, которая цепко перехватывает любые нажатия клавиш, в том числе и не относящиеся к игре (доп. клавиши отвечающие за громкость звука например и т.д.), работает только alt+ctrl+del. Поэтому стало необходимо прикрутить активацию чита к "нарисованной" в игровом интерфейсе кнопке.
1. В игровом интерфейсе имеется клавиша, нажимая на которую происходит переключение стойки персонажа. Методом поиска неизвестного значения я нашел адрес, значение в котором отвечает за текущую стойку.
2. Я ставлю бряк на запись в этот адрес и нажимаю клавишу смены стойки, выскакивает инструкция. Вот за эту инструкцию и будем цепляться.
3. Есть код, который заменяет оригинальную инструкцию, отвечающую за уменьшение значения очков хода при перемещении персонажа. Данная инструкция является общей для всех персонажей в отряде, что очень удобно. Вот этот код и хочется прикрутить грубо говоря "после" той инструкции, о который написано в п.2
А это уже код, обеспечивающий отключение уменьшение очков хода для персонажей
Так вот, надеюсь, что я не слишком раскатал губу и это реально сделать. К сожалению, в геймхакинге и программировании я Алёшка, так что мне остается только надеяться на чью-то помощь.
NullAlex: Большой код принято оборачивать в тег спойлера. Читай FAQ по тегу.
[ENABLE]aobscanmodule(INJECT,game.exe,83 79 68 01 0F 94 C0)alloc(newmem,$1000)label(code)label(return)newmem://Тут должен быть код, отключающий уменьшение очков хода у персонажейjmp returncode:// Тут без изменений оригинальная инструкция, которая всплывает при нажатии той самой "нарисованной" клавиши. cmp dword ptr [ecx+68],01 sete al jmp newmemINJECT: jmp code nop nopreturn:registersymbol(INJECT)[DISABLE]INJECT: db 83 79 68 01 0F 94 C0unregistersymbol(INJECT)dealloc(newmem)
[ENABLE]aobscanmodule(INJECT,game.exe,89 42 08 E8 66 AB 00 00)alloc(code,$1000)label(return)registersymbol(INJECT)code: mov eax,[edx+08]// Инструкция срабатывает при перемещении персонажа // В оригинале было [edx+08],eax //Таким образом мы пишем не новое значение в текущее, а текущее в новое // и очки хода у нас стоят на месте call game.exe+F26B0 jmp returnINJECT: jmp code nop nop nopreturn:[DISABLE]dealloc(code)INJECT:db 89 42 08 E8 66 AB 00 00unregistersymbol(INJECT)
Активация чита "нарисованной" клавишей игрового интерфейса.
in Вопросы по созданию читов в одиночных играх
Опубликовано · Изменено пользователем Adouken
Итоговые скрипты вышли такими, задача полностью решена: