• XSS.stack #1 – первый литературный журнал от юзеров форума

Как создавать софты для игры имея исходный код?

assembler

HDD-drive
Пользователь
Регистрация
12.05.2023
Сообщения
27
Реакции
1
Всем привет, очень мало знаю в C++, играю в игрулю и хочу сделать туда вспомогательный скрипт для себя и своих кентов(не читы. чисто визуальную х#йню)

И нашел вот такую документацию на офф.сайте


Можете ли вы дать мне какие то ссылки на уроки, и направить вообще что нужно делать? Как мне обращаться к переменным игры через внешний софт, получается мне нужно делать инжект скрипта? Или через .dll можно ?
 
а на кой ляд тебе инжекты и прочее? там жеть опенсурс.
для начала просто выполни инструкции из вики - собери игру.
а потом ищи в коде то место, куда ты хочешь воткнуть свои изменения.
как найдешь - для начала вставь отладочный вывод и посмотри - оно это или нет.
можешь вообще на каждый чих дебаг печатать.
не забудь разобраться с git. не с github, а именно git. делаешь новую веточку и потихонечку, чтобы ничего не сломать, вносишь изменения
внес, проверил - если работает аккуратно закоммитил, если сломал - сбросил. гит для этого и нужен тебе на первом этапе.
запомни простое правило: одно логическое изменение в коде - один коммит. иначе потом сам без поллитры не разберешься где рабочие изменения, а где ты что-то сломал.
 
а на кой ляд тебе инжекты и прочее? там жеть опенсурс.
для начала просто выполни инструкции из вики - собери игру.
а потом ищи в коде то место, куда ты хочешь воткнуть свои изменения.
как найдешь - для начала вставь отладочный вывод и посмотри - оно это или нет.
можешь вообще на каждый чих дебаг печатать.
не забудь разобраться с git. не с github, а именно git. делаешь новую веточку и потихонечку, чтобы ничего не сломать, вносишь изменения
внес, проверил - если работает аккуратно закоммитил, если сломал - сбросил. гит для этого и нужен тебе на первом этапе.
запомни простое правило: одно логическое изменение в коде - один коммит. иначе потом сам без поллитры не разберешься где рабочие изменения, а где ты что-то сломал.
Ну, это я так и хотел изначально. Но я хочу что бы это потом поставили и мои кенты, а кидать им отдельно игру - такое себе дело, + многие играют отдельно со стима
 
Ну если что то визуальное надо добавить можешь дописать это в исходниках (допустим в месте в коде где на экране что то рисуется), и просто собрать игру с инзменениями
 
а на кой ляд тебе инжекты и прочее? там жеть опенсурс.
для начала просто выполни инструкции из вики - собери игру.
а потом ищи в коде то место, куда ты хочешь воткнуть свои изменения.
как найдешь - для начала вставь отладочный вывод и посмотри - оно это или нет.
можешь вообще на каждый чих дебаг печатать.
не забудь разобраться с git. не с github, а именно git. делаешь новую веточку и потихонечку, чтобы ничего не сломать, вносишь изменения
внес, проверил - если работает аккуратно закоммитил, если сломал - сбросил. гит для этого и нужен тебе на первом этапе.
запомни простое правило: одно логическое изменение в коде - один коммит. иначе потом сам без поллитры не разберешься где рабочие изменения, а где ты что-то сломал.
Вижу что ты Си кодер. сможешь порекомендовать Си обучение? Заранее спасибо!
 
Вижу что ты Си кодер. сможешь порекомендовать Си обучение? Заранее спасибо!
Классика. K&R. Если чистый С.
 
Ну если что то визуальное надо добавить можешь дописать это в исходниках (допустим в месте в коде где на экране что то рисуется), и просто собрать игру с инзменениями
Да это я и так понимаю. Мне нужно что бы я мог это без сборки игры добавлять
 
Да это я и так понимаю. Мне нужно что бы я мог это без сборки игры добавлять
Скомпилированное уже (у кентов) может сильно отличаться от скомпилированного тобой.
Поделюсь своим опытом. Предположим, что у Вас один и тот же бинарный код и что игра работает на DirectX.
Это как минимум инжект и хук нужной функции в DirectX для отрисовки кадра, в случае с DirectX9 это EndScene/Reset, в случае с DirectX11 это Present.
Отрисовать кадр, вернее наложить на него свою графику поможет ImGui.
Искать и цепляться к структурам игры поможет CheatEngine.
Если вкратце: твой код должен будет способен по сигнатурам составленным с помощью CheatEngine найти нужные структуры в памяти процесса, обработать их и нарисовать дополнение к кадру с помощью ImGui и наложить это дополнение на кадр с помощью хука DirectX.

Все выше описанное легко гуглится.

PS: Я сейчас заглянул в код, тема ебать не простая с нахрапа. Разбираться придется тебе дружище со всем этим.

Эта статья пока не имеет версии для Windows и ориентирована на Linux. - Расходимся, сорри.
 
Последнее редактирование:
Я сейчас заглянул в код, тема ебать не простая с нахрапа
Спорное утверждение, директ3д вообще довольно простой, из "сложного" там может быть только математика (кватернионы и матрицы в частности), но опять же с математическим бекграундом с нахрапа разобраться очень даже можно.
Что касается CheatEngine, удивительно, что им люди до сих пор пользуются, когда существует ида, да и "цепляются" обычно не к структурам, а к функциям, которые ответственны за обновление (не отрисовку) мира, обычно это функции из разряда FixedUpdate / CreateMove / OnTickSimulate, от движка зависит. ¯\_(ツ)_/¯
 
Спорное утверждение, директ3д вообще довольно простой
Обработка структур может оказаться не простой, мне например в первый и крайний раз в жизни пригодилась теорема Пифагора. Почему это может показаться не простым? В проекте этого чита около 5000 строк, из них 1500-2000 это математика, которая условному malware кодеру башку нагреет.
 
Обработка структур может оказаться не простой, мне например в первый и крайний раз в жизни пригодилась теорема Пифагора. Почему это может показаться не простым? В проекте этого чита около 5000 строк, из них 1500-2000 это математика, которая условному malware кодеру башку нагреет.
Насчет структур не спорю, хотя они тоже довольно простые, но их много. А что касается математики, ну... Я просто математик по образованию, мне бошку не греет. =)
Но ты прав, я сужу по себе наверное. Но в целом в читах это обычно всякая тригонометрия да вращение матриц, очень редко кинетические и/или интегральные вычисления (обычно для расчета траектории), причем само "интегрирование" как правило тоже топорное, трапезоидным методом каждый тик...
 
Насчет структур не спорю, хотя они тоже довольно простые, но их много. А что касается математики, ну... Я просто математик по образованию, мне бошку не греет. =)
Но ты прав, я сужу по себе наверное. Но в целом в читах это обычно всякая тригонометрия да вращение матриц, очень редко кинетические и/или интегральные вычисления (обычно для расчета траектории), причем само "интегрирование" как правило тоже топорное, трапезоидным методом каждый тик...
Так и есть. Я например не особо математик)) Перемножение, вычитание, сложения матриц, вычисление нужной точки на 2D экране исходя из двух 3D координат внутри игрового мира для аима, корректировка аима на скорость полета снаряда и расстояния до противника при баллистической траектории полета снаряда, вроде не сложно если противник стоит на месте, а если он двигается?... Тут в уравнение добаляется скорость и направление движения. Вот это я имею ввиду под выражением "не просто".
 
Последнее редактирование:
Так и есть. Я например не особо математик)) Перемножение, вычитание, сложения матриц, вычисление нужной точки на 2D экране исходя из двух 3D координат внутри игрового мира для аима, корректировка аима на скорость полета снаряда и расстояния до противника при баллистической траектории полета снаряда, вроде не сложно если противник стоит на месте, а если он двигается?... Тут в уравнение добаляется скорость и направление движения. Вот это я имею ввиду под выражением "не просто".
Ну это и есть кинетика + трапезоидное интегрирование, большинство читов обычно именно так этот вопрос и решают, так же "симулируя" физику цели каждый тик на перед (с некоторым пределом, допустим в 2 секунды, со 128 тиками в секунду эту будет 256 тиков), то бишь де-факто интегрируя её, и перерасчитывают местоположение снаряда по кинетической формуле с учётом так же изменения угла обзора (или всё так же интегрируют, лол, получается такое двойное интегрирование, но так обычно пастеры делают, потому что это уже будет супер медленно), а затем смотрят, пересеклись ли хитбоксы / бадибокс цели со снарядом или нет, если да, то значит мы нашли нужное положение камеры для выстрела, если по итогу нет, то значит не нашли и не стреляем. =)
Как видишь логика довольно элементарная. Кстати можешь почитать статью на одном тематическом форуме, оставлю под хайдом, форум тоже очень технический (и даже гораздо более технический, нежели xss), но по читам. Там чувак кстати вообще без интегрирования обходится.
Скрытый контент для пользователей: waahoo.
 
Ну это и есть кинетика + трапезоидное интегрирование, большинство читов обычно именно так этот вопрос и решают, так же "симулируя" физику цели каждый тик на перед (с некоторым пределом, допустим в 2 секунды, со 128 тиками в секунду эту будет 256 тиков), то бишь де-факто интегрируя её, и перерасчитывают местоположение снаряда по кинетической формуле с учётом так же изменения угла обзора (или всё так же интегрируют, лол, получается такое двойное интегрирование, но так обычно пастеры делают, потому что это уже будет супер медленно), а затем смотрят, пересеклись ли хитбоксы / бадибокс цели со снарядом или нет, если да, то значит мы нашли нужное положение камеры для выстрела, если по итогу нет, то значит не нашли и не стреляем. =)
Как видишь логика довольно элементарная. Кстати можешь почитать статью на одном тематическом форуме, оставлю под хайдом, форум тоже очень технический (и даже гораздо более технический, нежели xss), но по читам. Там чувак кстати вообще без интегрирования обходится.
Скрытое содержимое
Знаю этот форум. Многое почитывал там когда интересовался темой. Теперь, после всего написанного, представь лицо ТС который очень мало знает С++ и хочет порадовать кентов. :)
 
Знаю этот форум. Многое почитывал там когда интересовался темой. Теперь, после всего написанного, представь лицо ТС который очень мало знает С++ и хочет порадовать кентов. :)
=))))
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх