• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   

11 сообщений в этой теме

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

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

1

Поделиться сообщением


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

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

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

0

Поделиться сообщением


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

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

Так же замечу, что хорошо бы понимать новую 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 трейнеров встроенных в окно игры, чтение/эмуляция нажатий клавиш на уровне ближе к устройствам ввода/вывода. Собрание, анализировании часто повторяющихся, связанных или не связанных данных того как вы играете с последующей автоматизацией.

0

Поделиться сообщением


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

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

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

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

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

0

Поделиться сообщением


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

С общением у нас тут все в порядке, если ты готов развиваться сам и помогать своими знаниями другим )

0

Поделиться сообщением


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

 

Ну 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  :)  

0

Поделиться сообщением


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

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

0

Поделиться сообщением


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

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

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

0

Поделиться сообщением


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

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

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

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

0

Поделиться сообщением


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

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

 

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

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

1

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас