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

SER[G]ANT

Разработчики (+)
  • Постов

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

  • Посещение

  • Победитель дней

    42

Весь контент SER[G]ANT

  1. сохраняешь текущее значение ставишь таймер сравниваешь текущее значение с сохранённым если изменилось, то выводишь значение в консоли/если нет - опять таймер сохраняешь новое текущее значение и т.д.
  2. Не знаю как на C, а на асме я делал так ... invoke GetAsyncKeyState,VK_1 .if eax!=0 .if key1==FALSE invoke KeySound,offset mPS invoke mPatch,mOffset1_2,addr mValue1_2,mSize1_2 invoke mPatch,mOffset1_3,addr mValue1_3,mSize1_3 invoke mPatch,mOffset1,addr mValue1,mSize1 mov key1,TRUE .elseif key1==TRUE invoke KeySound,offset UmPS invoke UmPatch,mUOffset1,addr mUValue1,mUSize1 mov key1,FALSE .endif .endif .....
  3. Ну так у вас 2 прыжка в одно и тоже место "ShippingPC-AFEARGame.exe"+AD4A14: jmp newmem jmp grenades2 nop returnhere_grenades2:
  4. А в чём разница? То, что в статье совсем другие картинки? В различных играх уровень здоровья отображается по разному, разве от этого что-то кардинально меняется? Статья даёт лишь базовые знания и не может ответить на все ваши вопросы и ситуации, которые вы встретите. Вы рассматриваете её как 100% шаблон, и если что-то отличается - всё, безвыходная ситуация! Но, судя по вашему последнему ответу, вы даже и не пытались попробовать. Если не учитывать, что на скриншотте сетевая игра (это же просто, как пример), то я не вижу ничего сложного в создании телепорта для человека, умеющего просто посидеть и подумать. (в игре, где это вообще возможно реализовать) Задайте себе вопросы: Координаты на глобальной карте и в игровом мире отличаются, если да, то как? Как или чем можно узнать координаты нужного вам места для телепорта? Если это не открытый мир, то как в игре происходит смена игровых уровней? Ваш эльф (или кто это там) управляет курсором на глобальной карте или наоборот? И т.д. и т.п.
  5. Отвечу, только если вы предоставите свои наработки. Приворотом и наведением порчи по фотографии я не занимаюсь.
  6. Ну, сам прицел вообще может ни на что не влиять, а быть лишь элементом HUD, игры сейчас всё сложнее и сложнее.
  7. Данная статья расскажет вам о создании чит-опции под названием «„Blink“ Teleport», которая позволяет телепортировать игрока в указанную точку, используя для её выбора какой-то объект (прицел, курсор, или что-то иное, что может указать место для телепортации). Этот чит является разновидностью всеми известной опции «Teleport» и его создание практически ничем от него не отличается, за исключением нескольких моментов. Примеры скриптов телепорта на форуме есть, а вот статьи на русском языке нету. Поэтому, сначала нужно рассказать о нём. Часть 1: «Teleport» Данный чит предназначен для быстрого перемещения игрового объекта (игрока) по заранее сохранённым или известным координатам. К примеру, вы взяли у НПС квест, который выполняется в другой части карты. Долго-долго шли, выполнили его и теперь нужно снова долго-долго возвращаться обратно для его сдачи. Чтобы сократить время бесполезного перемещения, умными геймхакерами была придумана опция «Teleport». Мы сохраняем координаты нахождения игрока около НПС и когда нужно, мы изменяем текущие координаты игрока на сохранённые, тем самым мгновенно перемещается к НПС. Стоит заметить, что данная опция предназначена для перемещения персонажа в игровом пространстве в играх с открытым миром или в пределах одного игрового уровня. Я не стану описывать трехмерную систему координат или строение игровых уровней. Для создания этих опций, как ни странно, знать это совершенно не обязательно (Но не ленитесь, поищите в гугле, там много информации на эту тему и это знание будет полезным). Нужно просто уметь находить хотя бы одну из координат. Все дальнейшие действия (в 99% случаев) сводятся к тому, что вы будете просто изменять инструкцию, её адрес, смещения и регистры в готовом шаблоне скрипта. Первой игрой для примера будет Tomb Rider 2013. Для начала нам нужно найти одну из координат игрока. Какую именно искать – решать вам. Лично я советую искать координату по оси Z (т.е. высоту), т.к. в большинстве игр, если мы спускаемся вниз, то значение координаты по оси Z уменьшается, если поднимаемся, то увеличивается. В случае же с X и Y, мы первоначально не знаем расположение игрока, относительно направления этих осей, поэтому мы можем идти вперёд и искать увеличивающееся значение, а на самом деле мы идём назад и значение координаты уменьшается. Итак, мы запустили игру и нашли подходящее место, где мы можем спускаться и подниматься. Ищем «Неизвестное значение» (Float), спускаемся и отсеиваем «Уменьшилось», поднимаемся и отсеиваем «Увеличилось» и так до тех пор, пока не найдем нужный нам адрес. Часто бывает так, что у нас остаётся много адресов, которые уменьшаются и увеличиваются вместе с нужным нам адресом или вообще имеют такое же значение. Что и произошло в данной игре. Добавляем их всех в таблицу, какую-то часть замораживаем и пытаемся прыгнуть в игре, если нам удалось это сделать, то это не те адреса. Размораживаем и удаляем их. И так, пока не найдем нужный адрес. Мы нашли адрес со значением координаты по оси Z. «02С7С7D8» (у вас он будет другим). Теперь ставим на него «Брейкпоинт на Доступ», всплывает много инструкций. Нам нужно выбрать подходящую инструкцию и убедиться, что она работает только с координатами игрока. Я выбрал «011E5D24 – 8B 50 08 – mov edx,[eax+08]». Нажимаем на неё правой кнопкой мыши и во всплывшем меню выбираем «Проверить адресам, к которым получают доступ выбранные инструкции (макс. 8)» Появляется окно. В нём отображается только 1 адрес, наш адрес. Отлично! (Желательно делать подобную проверку рядом с другими динамическими объектами – противниками, автомобилями и т.д. просто я первоначально знал, что данная инструкция верна) Теперь можно выделить этот адрес и нажать комбинацию клавиш «Ctrl+R» и там скопировать адрес напротив нужного регистра или вернуться в предыдущее окно, выделить нашу инструкцию и нажать на кнопку «Доп. Информация» Копируем адрес после «Предполагаемое значение указателя:». У меня это 02C7C7D0, и он является началом структуры, в которой расположены координаты игрока. Переходим в «Анализ данных/структур» и исследуем найденную структуру, содержащую координаты игрока Практически всегда все 3 координаты по осям X,Y,Z находятся рядом друг с другом. Отыскиваем уже найденную Z Добавляем в таблицу адреса находящиеся рядом с Z, замораживаем их по очереди и смотрим, можем ли мы перемещаться в какую-либо сторону, если нет, значит мы нашли ещё какую-то из координат. Отлично, адреса по смещению 0, 4, 8 и есть адреса с нашими координатами. Переходим к написанию скрипта. Мы написали скрипт, добавили его в таблицу. Теперь туда же нужно добавить флаги «_saveCoords» и «_loadCoords» И когда нам нужно сохранить или загрузить координаты, мы просто меняем значение одного из этих адресов на 1 (можно вручную, а можно установить Хоткей). Вот, в принципе, и всё. Это самый простой скрипт телепорта, его можно сделать и более навороченным, но наша главная цель – «„Blink“ Teleport», для которого этого будет достаточно. Часть 2: «„Blink“ Teleport» А что, если нам нужно переместиться в место, где мы ещё не были? В опции «Teleport» мы сначала сохраняли координаты нашего объекта, а уже потом заменяли его текущие координаты на сохранённые. А вот в «„Blink“ Teleport» всё тоже самое, только мы заменяем текущие координаты нашего объекта на текущие координаты другого объекта. А какой объект, помимо игрока, мы ещё можем перемещать? Прицелом! Во многих играх (не во всех, а значит и эту опцию реализовать именно так не всегда получится) прицел задаёт траекторию движения пуль. Грубо говоря, прицел показывает вон туда, после выстрела там должна быть дырка. Координаты этого «вон туда» мы и должны попытаться найти. Опять вам нужно начать поиск «Неизвестного значения», изменять расположение прицела и отсеивать «Увеличилось»/«Уменьшилось». Можно встать у ровной стены и, перемещая прицел вверх/вниз, искать координату по оси Z, как в случае с игроком, но я стал искать координату по оси Y, т.к. можно поставить прицел как можно ближе к ногам игрока, текущие координаты которого нам известны, и начать с поиска «Диапазона», что значительно уменьшит число ложных адресов. Далее можно продолжать отсеивать «Увеличилось»/«Уменьшилось». В общем, любым удобным методом находим одну из координат прицела. Далее, повторяя те же действия, что мы делали в первой части статьи, мы находим инструкцию, начало структуры и смещение адресов с координатами в ней. И изменяем наш скрипт телепорта В нём всё тоже самое, только скрипт уже работает с двумя разными инструкциями. В «_save:» теперь происходит сохранение не координат игрока, а прицела. Флаг «_saveCoords» уже нам не нужен (Но его можно поставить, если вы хотите данный телепорт не сразу). В «_load:» всё осталось без изменений. Активируем скрипт, прицеливаемся в выбранную точку, меняем значение флага «_loadCoords» на 1 и вуаля. Но не всегда бывает всё так гладко с нахождением координат. К примеру возьмём игру «Санитары Подземелий» (1 и 2 части). Получать координаты для телепортации мы будем из курсора, точнее из зелёного кружочка, который указывает конечную точку перемещения Хартмана. Если мы расположим его в том же месте, где стоит Хартман, то увидим, что координаты по оси X и Y равны, а вот по Z отличаются (координаты курсора) (координаты игрока) Высота расположения курсора ниже на 3, чем у Хартмана. Если в первой части игры это никак не отображалось на телепортации, то во второй Хартман проваливался под землю. Следовательно в скрипте пришлось делать небольшую поправку, а именно уменьшать значение координаты курсора по оси Z на 3 Это лишний раз говорит о том, что не всегда может быть точно так же, как и в статье. Стоит так же отметить, что сейчас существует много игр с якобы открытым миром, где при обычном прохождении ничего не замечаешь, а на самом деле там всё строго заскриптовано. И, если перепрыгнуть заскриптованную сцену при помощи данного чита, то могут появиться различные глюки, вплоть до невозможности пройти дальше. Удачи! © SER[G]ANT 2013
  8. Я же говорил, что скоро напишу статью (или нет) на эту тему. Уже готово вступление и начало первой части статьи. (Там же и про простой телепорт рассказывать нужно). Потерпи или поковыряйся в моих таблицах для санитаров подземелий
  9. Была небольшая запарка в игре, решил скачать ваш трейнер. Оказалось, что хоть и заявлено, что работает на "All Version's", но со Steam версией не пашет. Благо, что позже прошёл затруднительное место самостоятельно.
  10. One Hit Kill у вас немного не верный. Если значение "[rbx+14]" = "1", то сразу идёт идёт прыжок на "returnhere" без выполнения инструкции "movss [rbx+08],xmm2". Получается, что враги мрут с 1 тычка, но и вы бессмертный. Поэтому скрипт должен выглядеть так: [ENABLE] alloc(newmem,2048,"Tutorial-x86_64.exe"+314ED) label(returnhere) label(originalcode) newmem: cmp [rbx+14],1 je originalcode //Если значение [rbx+14] = "1", т.е. это игрок, //то выполняем оригинальный код. //Если же [rbx+14] ≠ "1", то это враги, mov [rbx+08],0 //значит мы меняем значение их здоровья на 0 и тут не нужно //писать ещё раз "movss [rbx+08],xmm2". jmp returnhere //после этого прыгаем в returnhere и всё. originalcode: //Оригинальный код movss [rbx+08],xmm2 jmp returnhere "Tutorial-x86_64.exe"+314ED: jmp newmem returnhere: [DISABLE] "Tutorial-x86_64.exe"+314ED: movss [rbx+08],xmm2 dealloc(newmem)
  11. http://cheaton.ru/f3...dlya-dayz-8343/ 1к можете отправить сюда http://podari-zhizn.ru/main/help
  12. Ищи через массив байт "8D85BCFDFFFF894508" В Steam версии этот код находится по адресу SaintsRowTheThird_DX11.exe: SaintsRowTheThird_DX11.AK::Monitor::GetTimeStamp+419DB3 SaintsRowTheThird.exe: SaintsRowTheThird.AK::MemoryMgr::GetPoolName+68ED83
  13. Всегда было интересно, что означает поле "Просмотров" в статистике профиля?
  14. Т.е. вы хотите примерно вот это: - Чтобы "плавать везде", нужно занопить инструкцию ххх по адресу ххх - Ура, теперь я умею делать опцию "плавать везде"!!1 ZOCKIR дал вам ссылку, которая облегчает это дело раз в 500.
×
×
  • Создать...

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

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