Помогите, пожалуйста нарыть инфу по созданию читов CS GO

Начинающий
Статус
Оффлайн
Регистрация
13 Апр 2019
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Здравствуйте! В написании читов для онлайн-игр в частности, для CS:GO я так сказать, новичок. Само по себе, я создавал весьма простенькие трейнеры для разных оффлайн игрушек, например, на количество золота в стратегиях и прочее. Очень хорошо знаю C++ и C#. У меня есть несколько воросов, я не прошу давать мне сразу готовые рабочие решения, мне подойдут и просто различные источники информации, как русскоязычные, так и не русскоязычные. Итак, вопросы:

1.Я знаком с простейшим примером инжекта кода в память игры. Но ведь я так понимаю, что если сделаю это напрямую, в лоб, при помощи WinApi и Hadle'ров, VAC очень быстро задоминирует надо мной, ведь так? Для оффлайн игрушек без защиты это сделать очень просто, но тут - другое дело. Следовательно, мне нужно каким-то образом обойти VAC и тут возникает ещё несколько вопросов.
2. Я конечно же, могу воспользоваться рабочим беспалевным инжектором dll и тупо написать dll'ку. Благо, инжектор не трудно найти. Но мне например, неизвестен интерфейс того или иного инжектора, я банально не знаю, какая скажем так, должа быть структура dll'ки, чтобы скормить её тому или иному инжектору без ошибок. И как быть? С ассемблером я на Вы с большой буквы, и у меня нет возможности разбирать инжекторы и вникать в их устройтсво.
3. В принцпе, я научился находить оффсеты, немного потренировался. Но и тут проблема. Допустим, я нашёл нужный\нужные мне оффсет\ы. Как мне понять, что они делают то? Имя оффсета даёт мне лишь весьма-весьма приблизительное представление того, чем он является и в большинстве случаев я тупо не могу сказать, за что именно отвечает та или иная ячейка памяти, и результат изменения просто непредсказуем. Одно дело тупо найти в области памяти ячейку, отвечающую за количество тех же монет в какой-нибудь оффлайн игрушке, там настолько все предельно просто, что и думать не надо. Меняй количество и всё. А тут, для создания ВХ или АИМ'а, надо не просто знать конкретные ячейки, но и то, что будет, если поменять их значение тем или иным способом, и кроме того, оперировать сразу несколькими ячейками для достижения результата. И как в этом черт, подери, вообще разобраться? Смотрю на сурсы читов как на китайскую грамоту. Вроде бы в общих чертах всё понятно, но на самом деле нихрена не понятно. Я например, не хочу тупо копипастить, я хочу понимать, что делаю. Но хватит ли у меня сил, например, полностью дизассемблировать cs go и полностью разобрать всю её архитектуру? Я вижу это нереальным. Я даже боюсь представить, сколько на это уйдёт времени, даже если бы я хорошо ориентировался в ассемблерном коде.
4. Ну допустим, я смог выполнить первые 2 пункта. Мне интересны границы возможности читов. Я так понимаю, что я могу на клиенте игры отобразить противников через стены, выпускать патроны прямо в голову и прочее. Но возможно ли при помощи читов в CS:GO, например, дать себе другое оружие, или заморозить очки жизни и брони? Иными словами, на что можно повлиять из клиента, а что выполняется на сервере и на что я не могу повлиять?
 
Участник
Статус
Оффлайн
Регистрация
28 Янв 2019
Сообщения
552
Реакции[?]
192
Поинты[?]
1K
Немного о создании читов тут.
я банально не знаю, какая скажем так, должа быть структура dll'ки, чтобы скормить её тому или иному инжектору без ошибок
Эээ. Никаких невероятных отличий dll читов от dll для простых программ нет. Да их вообще нет. Можно скормить игре любую dll.
С ассемблером я на Вы с большой буквы, и у меня нет возможности разбирать инжекторы и вникать в их устройтсво.
Исходников инжекторов в сети мильён.
Допустим, я нашёл нужный\нужные мне оффсет\ы. Как мне понять, что они делают то?
Оффсеты в конечном итоге представляют собой указатель на область в памяти, где что-то лежит. Типа hw.dll + 0xDEADBEEF -> начало какой-либо функции/вмт/переменная в hw.dll
А тут, для создания ВХ или АИМ'а, надо не просто знать конкретные ячейки, но и то, что будет, если поменять их значение тем или иным способом, и кроме того, оперировать сразу несколькими ячейками для достижения результата.
На деле ничего такого сложного нет. В CSN:Z я хукал функцию рендеринга модели и выполнял glClear(GL_ACCUM), в итоге очищался буфер накопления, и было у меня ВХ. Вот тема, где я можно глянуть немного кода касательно этого ВХ, а вот - касательно АимБот-а. Да, это не для ГО, но тем не менее.
Но хватит ли у меня сил, например, полностью дизассемблировать cs go и полностью разобрать всю её архитектуру?
Подразумевается, полностью отреверсить? Если так, то вряд ли хватит сил. Это довольно большая и бесполезная работа.
 
Начинающий
Статус
Оффлайн
Регистрация
13 Апр 2019
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Эээ. Никаких невероятных отличий dll читов от dll для простых программ нет. Да их вообще нет. Можно скормить игре любую dll.
Хмм, окей.
Исходников инжекторов в сети мильён
Хмм, окей!
Оффсеты в конечном итоге представляют собой указатель на область в памяти, где что-то лежит. Типа hw.dll + 0xDEADBEEF -> начало какой-либо функции/вмт/переменная в hw.dll
Да, да, сам принцип оффсетов я понимаю. Это если так можно выразиться, смещение ячеек памяти относительно адреса начала программы. Скажем так, относительная величина смещения. Я видимо, не совсем корректно выразился. Я хотел сказать, вот мы нашли по оффсету\там ячеку\ки. Если нам доподлинно известно, что делает именно эта ячейка, то поставить нужное значение нет малейшей сложности. Проблема возникает как раз в поиске требуемых ячеек.
Опять же, пример с золотом, например, в Empire Earth. Изменяя количество золота я могу отсеять при помощи чит энжина все мусорные значения и найти искомое, а дальше, путём нехитрых манипуляций написать сам чит. Но вот WH - другое дело. Я например, не могу включить WH в самой игре и посмотреть, что где меняется в ячейках. Мало того, я даже приблизительно не могу сказать, какое значение мне нужно искать и ЧТО же мне искать.. Допустим, я открыл игру при помощи IDA и нашёл названия переменных, и оффсеты к ним, и тут же возникает кучу если и но.
1. Я мог пропустить то, что мне нужно.
2. То, что я нашёл может отвечать за что-то другое, а не за то, что я предполагаю.
3. Я по прежнему не знаю, какие данные записывать в найденную ячейку для достижения необходимого результата.
4. В конце концов, я могу нарваться на ситуацию, когда я вижу переменную с не говорящим названием и не знаю, что сие есть и с чем это есть, но это может быть именно то, что мне нужно. И я никогда не пойму, что это как раз то, что я ищу.
В общем, мне совершенно, абсолютно непонятна логика того каким образом среди стога сена найти нужную мне иголку. Алгоритм действий то какой?? Вот правда, везде пишут как это делается, при помощи чего, как изменить ячейки, как искать оффсеты, какие проги нужны, доходит даже до того, что пишут, где в каком меню надо клацать мышкой и какую кнопку жмакать. И всё прочее в таком духе. Но почему то никто ни словом не обмолвился о том, а как собственно, при помощи дедукции и собственных мозгов найти искомое. А ведь это самое самое нужное и интересное)) Но этот вопрос почему-то остаётся без внимания)).
Вот Вы можете мне объяснить, как вы придумали гениальную идею хакнуть функцию? Как вы узнали, за что отвечает эта функция, как вы вообще узнали, что именно Вам надо найти? Как Вы связали все эти элементы головоломки воедино? Что для этого нужно?
Буду очень благодарен, если Вы прольёте свет на эту тему. В конце концов, чтобы лазить по менюшкам и клацать мышкой, много мозгов не надо. Это вообще далеко не самое главное. Как раз самые большие проблемы у начинающих возникают не с самим программным обеспечением для взлома и не с умением с ними работать, и даже не с изучением конкретного ЯП'а, а именно с отсутствием понимания методов и алгоритмов реверса. В конце концов, не одним только знанием ЯП'а и знанием пользовательского интерфеса своего софта хакеры живут. Поэтому максимум, что могут сделать новички - тупо копипастить, заменяя пару строк кода. В конце концов, если охарактеризовать все гайды коротким и ёмким текстом, привести аналог, так сказать, это похоже на инструкцию:
1. Возьмите в руки калькулятор.
2. Нажимая на кнопочки с циферками на табло показывается введенное вами число.
3. Нажимая на кнопочки со значками крестика, крестика на боку, черточки и чёрточки с точками, вы совершаете математические действия
4. Нажимая на кнопочку с двумя палочками вы получаете результат.
5. Если нажать на С, то появится нолик а калькулятор сбросится.
6. Теперь, используя полученные знания, давайте попробуем вычислить интеграл Римана и площадь фигуры, находящейся в пространстве с постоянной положительной кривизной.
7. ?????
8. PROFIT!
Я например в реверс-инжиниринге - ни бум-бум, знаний практически ноль, их хватает только на написание простейших очевидных трейнеров в лоб. Оттого и возникает сумасшедшая идея реверсить вообще весь код игры от а до я, потму что мне это кажется проще, чем найти среди вороха данных то, что нужно. И мне бы очень хотелось бы узнать не только, как пользоваться "калькулятором", но и как находить "интеграл Римана"))) Надеюсь, Вы поняли аналогию))
 
Участник
Статус
Оффлайн
Регистрация
28 Янв 2019
Сообщения
552
Реакции[?]
192
Поинты[?]
1K
Вот Вы можете мне объяснить, как вы придумали гениальную идею хакнуть функцию? Как вы узнали, за что отвечает эта функция, как вы вообще узнали, что именно Вам надо найти?
У меня всё достаточно просто вышло: глянул в HLSDK на название функции (хотя, на самом деле, это метод ВМТ), понял, что это может сработать (до этого glClear(GL_ACCUM) также показал себя как хороший (или не совсем хороший, ибо просвечивает все энтити в принципе) ВХ-метод в OpenGL-чите), нашёл место, в котором можно получить адрес всей ВМТ, где лежала функция (также используя HLSDK), и по итогу хукнул эту функцию. Вообще говоря, конечно, чтобы сделать ВХ, нужно разобраться в рендеринге, используемом в игре, и уже отталкиваться от него. Иначе - никак.
Алгоритм действий то какой?
В случае для игры, для которой нет СДК - реверсинг игры (но не полный, само собой). При этом нужно знать, что именно хочешь найти. Большую помощь могут оказать говорящие имена ВМТ и содержание строк. Они реально могут облегчить поиск требуемых участков.
 
Начинающий
Статус
Оффлайн
Регистрация
13 Апр 2019
Сообщения
3
Реакции[?]
0
Поинты[?]
0
У меня всё достаточно просто вышло: глянул в HLSDK на название функции (хотя, на самом деле, это метод ВМТ), понял, что это может сработать (до этого glClear(GL_ACCUM) также показал себя как хороший (или не совсем хороший, ибо просвечивает все энтити в принципе) ВХ-метод в OpenGL-чите), нашёл место, в котором можно получить адрес всей ВМТ, где лежала функция (также используя HLSDK), и по итогу хукнул эту функцию. Вообще говоря, конечно, чтобы сделать ВХ, нужно разобраться в рендеринге, используемом в игре, и уже отталкиваться от него. Иначе - никак.
Интересно! Честно говоря, из всего SDK для всей линейки CS использовал только хаммер, и даже не догадывался о том, что там можно нарыть такую инфу. Круто у вас получилось!
В случае для игры, для которой нет СДК - реверсинг игры (но не полный, само собой). При этом нужно знать, что именно хочешь найти. Большую помощь могут оказать говорящие имена ВМТ и содержание строк. Они реально могут облегчить поиск требуемых участков.
Хмм, изучу SDK гораздо более пристально. Да, предстоит очень много работы!) Спасибо за ваш ответ!
 
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2018
Сообщения
97
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2018
Сообщения
97
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хмм, окей.

Хмм, окей!

Да, да, сам принцип оффсетов я понимаю. Это если так можно выразиться, смещение ячеек памяти относительно адреса начала программы. Скажем так, относительная величина смещения. Я видимо, не совсем корректно выразился. Я хотел сказать, вот мы нашли по оффсету\там ячеку\ки. Если нам доподлинно известно, что делает именно эта ячейка, то поставить нужное значение нет малейшей сложности. Проблема возникает как раз в поиске требуемых ячеек.
Опять же, пример с золотом, например, в Empire Earth. Изменяя количество золота я могу отсеять при помощи чит энжина все мусорные значения и найти искомое, а дальше, путём нехитрых манипуляций написать сам чит. Но вот WH - другое дело. Я например, не могу включить WH в самой игре и посмотреть, что где меняется в ячейках. Мало того, я даже приблизительно не могу сказать, какое значение мне нужно искать и ЧТО же мне искать.. Допустим, я открыл игру при помощи IDA и нашёл названия переменных, и оффсеты к ним, и тут же возникает кучу если и но.
1. Я мог пропустить то, что мне нужно.
2. То, что я нашёл может отвечать за что-то другое, а не за то, что я предполагаю.
3. Я по прежнему не знаю, какие данные записывать в найденную ячейку для достижения необходимого результата.
4. В конце концов, я могу нарваться на ситуацию, когда я вижу переменную с не говорящим названием и не знаю, что сие есть и с чем это есть, но это может быть именно то, что мне нужно. И я никогда не пойму, что это как раз то, что я ищу.
В общем, мне совершенно, абсолютно непонятна логика того каким образом среди стога сена найти нужную мне иголку. Алгоритм действий то какой?? Вот правда, везде пишут как это делается, при помощи чего, как изменить ячейки, как искать оффсеты, какие проги нужны, доходит даже до того, что пишут, где в каком меню надо клацать мышкой и какую кнопку жмакать. И всё прочее в таком духе. Но почему то никто ни словом не обмолвился о том, а как собственно, при помощи дедукции и собственных мозгов найти искомое. А ведь это самое самое нужное и интересное)) Но этот вопрос почему-то остаётся без внимания)).
Вот Вы можете мне объяснить, как вы придумали гениальную идею хакнуть функцию? Как вы узнали, за что отвечает эта функция, как вы вообще узнали, что именно Вам надо найти? Как Вы связали все эти элементы головоломки воедино? Что для этого нужно?
Буду очень благодарен, если Вы прольёте свет на эту тему. В конце концов, чтобы лазить по менюшкам и клацать мышкой, много мозгов не надо. Это вообще далеко не самое главное. Как раз самые большие проблемы у начинающих возникают не с самим программным обеспечением для взлома и не с умением с ними работать, и даже не с изучением конкретного ЯП'а, а именно с отсутствием понимания методов и алгоритмов реверса. В конце концов, не одним только знанием ЯП'а и знанием пользовательского интерфеса своего софта хакеры живут. Поэтому максимум, что могут сделать новички - тупо копипастить, заменяя пару строк кода. В конце концов, если охарактеризовать все гайды коротким и ёмким текстом, привести аналог, так сказать, это похоже на инструкцию:
1. Возьмите в руки калькулятор.
2. Нажимая на кнопочки с циферками на табло показывается введенное вами число.
3. Нажимая на кнопочки со значками крестика, крестика на боку, черточки и чёрточки с точками, вы совершаете математические действия
4. Нажимая на кнопочку с двумя палочками вы получаете результат.
5. Если нажать на С, то появится нолик а калькулятор сбросится.
6. Теперь, используя полученные знания, давайте попробуем вычислить интеграл Римана и площадь фигуры, находящейся в пространстве с постоянной положительной кривизной.
7. ?????
8. PROFIT!
Я например в реверс-инжиниринге - ни бум-бум, знаний практически ноль, их хватает только на написание простейших очевидных трейнеров в лоб. Оттого и возникает сумасшедшая идея реверсить вообще весь код игры от а до я, потму что мне это кажется проще, чем найти среди вороха данных то, что нужно. И мне бы очень хотелось бы узнать не только, как пользоваться "калькулятором", но и как находить "интеграл Римана"))) Надеюсь, Вы поняли аналогию))
Пожалуйста, авторизуйтесь для просмотра ссылки.
Гайд по оффсетам, гайд на патерны вечером сделаю, да
 
Сверху Снизу