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

Рекомендуемые сообщения

Очень компактный справочник - сайт по языку программирования С++ - ссылка

Кому надо, то учите С++ в первую очередь по ключевым словам. Ключевые слова и их приминение знать как таблицу умножения  :)

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Хотите знать C++? Читайте "Бьерн Страуструп. Язык программирования С++".

Справочники - это все здорово, но без теории очень сложно что-либо понимать.

Ссылка на комментарий
Поделиться на другие сайты

Правильно, Страуструпа нужно обязательно прочитать, тем кто не читал (даже тем кто читал Шилдта). 

Так же замечу, что хорошо бы понимать новую Visual Studio для C++: ее возможности, типы проектов которые можно, нужно или не нужно создавать...  Для этого нужны книги по новее датируемые выше 2008 года. В частности нужны ещё книги (статьи или информация) как писать совместно с WinAPI от создания простых окон, работы с файлами до сложных задач. Классикой в последнем случае будет книга Рихтера (Windows для профессионалов). Также не забыть про архитектуру Windows (она есть у того же Рихтера и в некоторых книгах + в хелпах DDK: "Kernel-Mode Driver Architecture" и т.п. ). 

Также не забыть про ассемблер, который можно делать как вставками в VS C++ коде.

И многое многое другое (программирование COM  (DirectX, opneGL), PE формат (статьи в Wasm-а), работа с дизассемблирами и отладчиками (так же с Wasma и др. сайтов)). Короче знать надо все, всё от устройств, контроллеров и драйверов от которых зависит запуск игры... до процессов и механизмов позволяющие играть в эту игру.  Только узнав всё это на полную катушку можно заниматься геймхакингом.

Основные направления всё же это:

1) очень хорошие навыки дизассемблирования и отладки + такие же знания того как работают "механизмы" Windows

2) создание инъекций кода путём ассемблера и языка программирования

3) создание трейнеров как отдельных программ так и встроенных в саму игру (в том числе и интерфейс трейнера должен быть прямо в окне игры)

4) остальное по мелочам и в зависимости от целей.

По С++ советую изучить указатели на адреса и функции, структуры, множества, классы (функции), операция привидения. Это поможет понять суть того как например вам в вашем трейнере работать с адресом здоровья и как игра с этим адресом работает через множество структур и классов и массивов данных. Позже изучить как выглядит при отладке инкапсуляция, наследование, полиморфизм и множественное виртуальное наследование. Т.е. надо понять как увидеть связь данных и функций привязанных к классу. Увидеть таблицу виртуальных методов, таблицу базовых классов (при множественном наследовании). Увидеть как в дизассемблере происходит привидение чего-то к какому-то типу: динамик касты, статик касты. Как работают конструкторы и деструкторы в отладке. Должны научиться видеть границы функции в дизассемблере, видеть и "догадываться" как используется эта функция например работающая со здоровьем: она используется одним объектом (вашим героем), множествами объектов (вашим героем и врагами) или эта функция настолько полиморфна, что используется не только для здоровья вашего героя и врагов, но ещё и для адреса патронов, усталости и маны также для вашего героя и врагов. Или же только для вашего героя или же только для ваших врагов... Все перечисленное мне кажется должен уметь каждый, т.к. это базовые моменты при создании ин]екции кода. Остальное например может быть таким. Если вам интересно собирать статистику о том что происходит в игре и как вы на эту игру влияете вот тут-то очень даже пригодятся знания языка программирования. Возможно это вам поможет автоматизировать некоторые процессы (я имею ввиду для сингловых игр, а не для многопользовательских)...

Другие моменты касаются создания трейнера. В интернете можно найти уже "вылизанные" функции поиска процесса и "механизмы" чтения, записи в адрес, снятие протекции со страницы памяти если в неё нельзя записывать байты. Создание окна на Win API тоже есть. Всё это очень просто.

Есть вещи посложнее, которые если и есть, то найти сложно. Создание directx, OpneGL трейнеров встроенных в окно игры, чтение/эмуляция нажатий клавиш на уровне ближе к устройствам ввода/вывода. Собрание, анализировании часто повторяющихся, связанных или не связанных данных того как вы играете с последующей автоматизацией.

Ссылка на комментарий
Поделиться на другие сайты

Ну Visual Studio это все-таки уже явное определение платформы (в основном из-за встроенных MS-классов-велосипедов), а Страуструп - это все ж теория голого С++ в общем виде. Конечно, сайт тематический, геймхакинг, что уже определяет платформу (это как в том анекдоте про PC и Mac)..

Тем не менее, для написания трейнера вполне хватит и WinAPI (в Рихтера, к слову, пару раз заглядывал, но там мне не понравился слог). И, мм.. Как таковых COM-объектов в Dx и Opngl с гулькин нос. Буквально, полторы функции. Да и зачем там это? Динамических библиотек в %windir% и корне достаточно за глаза, чтобы их еще и регистрировать в виде компонентов. А вот дизассемблирование прог, написанных на классах - это реально интересно :) Вчера наткнулся, заинтересовало.

Я, собсно, че к вам заглянул-то :) Хочется порыться в ресурсах игр, для этого стоит познакомиться с WinAsm'ом, а то у нас только и было что один семестр по микроконтроллерам (то есть специфический, не под 8086), с кривой методичкой; там, помнится, даже сегменты были только общего назначения, а-ля DOS. Хотя могу ошибаться, нам явно не все начитали :) Надеюсь, в такой вот обстановке радости и веселья, по пути почитывая cracklab, приду к тому, к чему стремлюсь :)

У вас тут как вообще, общение в вольном стиле изложения? То бишь, злостных тем, где выкладываются исключительно ссылки с шаблонными сообщениями, не наблюдается?

Ссылка на комментарий
Поделиться на другие сайты

 

Ну Visual Studio это все-таки уже явное определение платформы (в основном из-за встроенных MS-классов-велосипедов), а Страуструп - это все ж теория голого С++ в общем виде. Конечно, сайт тематический, геймхакинг, что уже определяет платформу (это как в том анекдоте про PC и Mac)..

Я пишу на VS в том числе и наработки для будущих трейнеров основываясь не таком малом и не правильном описании причин, которое ты привел. Да и под платформой принято понимать другое, а под средой разработки понимать не платформу как таковую.

Тем не менее, для написания трейнера вполне хватит и WinAPI (в Рихтера, к слову, пару раз заглядывал, но там мне не понравился слог).И, мм.. Как таковых COM-объектов в Dx и Opngl с гулькин нос. Буквально, полторы функции. Да и зачем там это? Динамических библиотек в %windir% и корне достаточно за глаза, чтобы их еще и регистрировать в виде компонентов.

От того какая у тебя цель зависит то чем ты будешь пользоваться. Win-API и язык программирования это минимальный набор "трейнеров по умолчанию", которых большинство людей делают.  В моих целях "полный вариант" включая устройства, драйвера, управление com-объектами, которые игра использует и многое другое.

У Рихтера надо читать, только, то что тебя интересует. В случае трейнеров это в первую очередь механизмы работы Windows (процессы, потоки,защита памяти, работа потоков, очереди сообщений,  и др).

А вот дизассемблирование прог, написанных на классах - это реально интересно :) Вчера наткнулся, заинтересовало.

А вот для этого просто необходима VS C++. На ней можно писать приложения аналогичные игровым, дизассемблировать и понимать свои догадки. + IDA и hex-array, OllyDbg или иные программы.

Я, собсно, че к вам заглянул-то :) Хочется порыться в ресурсах игр, для этого стоит познакомиться с WinAsm'ом, а то у нас только и было что один семестр по микроконтроллерам (то есть специфический, не под 8086), с кривой методичкой; там, помнится, даже сегменты были только общего назначения, а-ля DOS. Хотя могу ошибаться, нам явно не все начитали :) Надеюсь, в такой вот обстановке радости и веселья, по пути почитывая cracklab, приду к тому, к чему стремлюсь :)

Под ресурсами игры обычно подразумевают: картинки, текстуры,  музыка, модели, различные конфиги... Хотя последние могут пригодиться для создания читов, но мы как-то не занимались распаковкой/запаковкой ресурсов и у нас нет по этому информации (хотя жаль). Если тебе нужно копаться с игровыми ресурсами, то тебе надо на сайты по модингу., а если нет, то Welcome  :)  

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
Я пишу на VS в том числе и наработки для будущих трейнеров основываясь не таком малом и не правильном описании причин, которое ты привел. Да и под платформой принято понимать другое, а под средой разработки понимать не платформу как таковую.

Эммм.. Ну писать на среде программирования довольно трудно, пишут таки в ней, но на каком-то из языков (коих там не так и много). Под платформой понималась, как это часто бывает среди прикладников, операционная система (рассматриваем случай IBM-PC-совместимых). Можно, конечно, и по другим критериям сообразить, при этом правильнее\обеденные классификация от этого не станет. VS при этом идет только под семейство Windows, то есть под эту платформу. К примеру, полновесный проект с makefile под линь в ней ты уже не сообразишь. Ровно как и не откомпиллишь соответствующий исполняемый файл. Интересно, кстати, рыться в кросс-платформенных проектах, постоянно натыкаясь на сиротливо приткнутые папочки а-ля VS2008 с ее солюшенами.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Изиучаем C# (СиШарп) рекомендую для новичков сайт http://www.simple-cs.ru/Default.aspx

C++ язык програмирование для профессионалов. Я думаю новичку сначала освоит надо C# он более легкий язык потом переход на C++ будет легким.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
  • 2 года спустя...

Изиучаем C# (СиШарп) рекомендую для новичков сайт http://www.simple-cs.ru/Default.aspx

C++ язык програмирование для профессионалов. Я думаю новичку сначала освоит надо C# он более легкий язык потом переход на C++ будет легким.ПфЯ поставил переесли есть учебники

Если есть учебники и справочники значить новичку не выучить? пфф бред не верю, что мозгов не хватит что ли!

Ссылка на комментарий
Поделиться на другие сайты

Если есть учебники и справочники значить новичку не выучить? пфф бред не верю, что мозгов не хватит что ли!

 

Ты где был года три назад умник.

Хорош флуд задай вопрос по существу.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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