Как зайти в код игры на пк
Перейти к содержимому

Как зайти в код игры на пк

  • автор:

Как посмотреть исходный код программы?

Я хочу подправить исходный код, ничего серьезного, только вывод нескольких строк. Программа написана скорее всего на С++. Мне использовать отладчик? Или как-то открыть в IDE? Просто я не хочу запускать программу, хочу просто поковыряться в коде. И может посоветуете какой нибудь? P.S. Сам файл — .exe

Anton Sorokin's user avatar

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

Но есть способы полностью или частично раскрыть код.

  • IDA Pro — самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
  • Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать «перевод» программы на другой язык, затереть имя фирмы и т.п.
  • Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать. Исходный код получить нельзя, но можно получить «номера строк и имена исходников», а так же имена/значения всех констант, локальных переменных, избежать «раздроблености функций» а так же получить классы с начинкой класса (почти все структуры кроме текста программы) что значительно упростит понимание работы программы. Для некоторых библиотек (dll) pdb-файлы можно скачать отдельно. Врядли уважающая себя фирма допустит утечку pdb своего стоящего продукта.
  • Debug info, существует DebugInfo-информация встроеная в exe. Если есть такая информация, и соответствующая утилита (Например на Borland Delphi собран, и он есть в наличии), то можно сделать аналогичное предыдущему пункту. Но врядли уважающая себя фирма допустит такую «глупую» ошибку (аналогично pdb).
  • Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы «подключают» в таблице импорта лишь mscorlib и всё). DisSharp плохо дизассемблирует некоторые части программы, но возможно его платная версия или платная версия подобных утилит раскрывает код лучше.
  • Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках — он раскрывается спец-утилитами (Refox например).
  • Утилита exescope.exe ResourceHacker.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
  • Если извесно чем создан код — думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).

Опять-же, это при условии что нету паковщика кода (тогда нужно сначала применить депаковщик), шифровальщика/самомодифицирующегося кода. Если не разбит обфускатором так что не распутать. Чем больше код — тем сложнее разобраться.

Простые способы просмотра кода игры: рекомендации для начинающих

Когда дело доходит до создания игр, просмотр кода является важным инструментом для начинающих разработчиков. Программа на языке программирования, такая как Python или JavaScript, отвечает за функциональность игры и взаимодействие ее компонентов. В этой статье мы рассмотрим несколько простых способов просмотра кода игры, которые помогут начинающим разработчикам лучше понять и изучить процесс создания игр.

1. Редактор кода

Первым шагом для просмотра кода игры является использование подходящего редактора кода. Существует множество редакторов кода, таких как Visual Studio Code, Sublime Text, Atom и Notepad++. Важно выбрать редактор, который соответствует вашим потребностям и предоставляет удобные функции, такие как подсветка синтаксиса и автозаполнение кода.

2. Открытие файлов игры

После выбора редактора кода нужно открыть файлы игры. Обычно код игры содержит несколько файлов, каждый из которых отвечает за определенную часть игры, например, уровни, графику и звуки. Чтобы найти код игры, нужно открыть соответствующий файл или папку с файлами игры.

3. Изучение структуры кода

Когда файлы игры открыты, важно изучить структуру кода. Часто в коде игры можно найти классы и функции, которые отвечают за конкретные аспекты игры, такие как движение персонажей, взаимодействие с объектами и обработку событий. Изучение структуры кода поможет разобраться, как игра работает и как взаимодействуют ее компоненты.

4. Чтение кода и комментариев

Чтение кода и комментариев является важным шагом для понимания функциональности игры. Код игры может содержать комментарии, которые объясняют, что делает определенная часть кода или почему она была написана именно таким образом. Чтение комментариев поможет лучше понять код и его цель.

5. Экспериментирование с кодом

Просмотр кода игры предоставляет возможность экспериментировать с кодом. Вы можете изменять значения переменных, искать места для добавления новых функций или изменений. Экспериментирование с кодом поможет лучше понять, как изменения влияют на поведение игры и как можно улучшить ее функциональность.

6. Использование инструментов отладки

Некоторые редакторы кода предоставляют инструменты отладки, которые помогают исследовать и исправлять ошибки в коде игры. Инструменты отладки позволяют установить точки останова в коде и следить за тем, как он выполняется во время игры. Использование инструментов отладки поможет понять, где и почему возникают ошибки в коде игры.

Вывод

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

Почему никак не узнать исходный код игры?

Объясните пожалуйста, почему я никогда не узнаю исходный код какой-нибудь игры пока разработчики его сами не выложат в открытый доступ?

В приложениях .net его можно узнать через DotPeek, но в большинстве игр нет.

Почему нельзя узнать исходный код, как например достать текстуры из игры?
Почему после компиляции всё?
Если это всё как-то шифруют, то как работает эта шифровка?

Я понимаю вопросы глупые, но я просто не могу этого понять. =(

(Объясните пожалуйста на простых словах, без википедии, я не понимаю что там написано)

  • Вопрос задан более двух лет назад
  • 3182 просмотра

Средний 2 комментария

  • Facebook
  • Вконтакте
  • Twitter

inoise

15432

Эмм ну допустим вы приготовили салат. Нарезали крабовые палочки, кукурузку всыпали, намешали особый соус по своему рецепту. И поставили на стол — нате, хавайте.

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

Так же и с программой. Исходный код — это для нас, человеков. Нам так удобнее описывать программу. Машине же для исполнения вообще не сдались красивые имена и английский язык, всё наше рукоделие переводится в машинные коды, притом покомпактнее, пооптимальнее (упаковкой / нарезкой салата из нашего кода занимаются оптимизирующие компиляторы). В результате получается бинарный файл. Да, его можно дизассемблировать, сломать мозги, но понять, как он работает. И чтобы его понять — нужно научиться читать как машина, думать, как компилятор. В общем, сложно это и часто нецелесообразно. А вообще, люди не то что софт, даже железо реверсят по фотографиям среза кристалла. Но это совсем другая история.

  • Facebook
  • Вконтакте
  • Twitter

GavriKos

DotPeek работает только для .net. Если приложение написано на чем т одругом — дотпик бесполезен. Есть разные другие инструменты для декомпиляции.
Но — полный исходный код вы не получите, если он был скомпилирован.

А текстуры можно вытащить — это совсем другое.

  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

Lunali

чужой код бесполезный. какой в нем смысл? я могу воспроизвести любую игру просто поиграв в нее,зачем нужен чужой код? любую игру не сложно воспроизвести .Свой код будет намного быстрее.
Вы потеряете много время читая чужой код . Проще написать новый, просто посмотрев на игру
Более того ту игру что вы видите можно реализовать как минимум шестью способами,смысл тратить время на чужой код если вам понравилась идея? создать свою игру увидев чужую не сложно .

Я как раз поругалась с Massachusetts Institute of Technology из за этого . Они хотят красть у детей код и раздавать всем. Я же не вижу в этом смысла и считаю смысл в том что бы Закрыть код, но научить каждого взглянув на чужую игру воспроизвести ее.

Я считаю что код должен быть закрыт ,а игру нужно публиковать не на сайте института ,а в магазине Хюавей
.
Задача не научить красть чужой код и меняя спрайты выдавать за свою,а задача научить любого написать код просто взглянуть на игру .

Поверте чужой код — это не только не чему не учить, но и научить плохому, а имено кражам.

Для того что бы украсть чужую игру достаточно взглянуть на рабочую. Я не вижу проблем сделать точно такую же если вижу готовую игру .

Важнее понять и знать что делает код ,чем просто глупо смотреть на чужой

К примеру вот код

Кто знает что он делает?
606f7f87a8817509029762.png
я не уверена что без пояснение кто то сразу даст ответ .

Потому куда важнее дать пояснение чем просто посмотреть чужой код

В играх важнее идея ,а не код . Самое важное в игре , это игровой сценарий.
Допустим вы украли код игры на питон , а сами знаете только си шарп, какой прок от этого?

Взлом: получаем исходный код, текстуры и модели игр на Unity

Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.

Многие игры, созданные на платформе Unity не так уж и защищены, как кажется. В данной статье предлагаю взломать исходный код игры на Unity для своих дальнейших задумок.

Извлекаем текстуры и шейдеры

Большинство ресурсов Unity-проекта упаковываются в файлы проприетарного формата с расширениями .assets и .resources . Наиболее популярный на сегодняшний день инструмент для просмотра таких файлов и извлечения из них ресурсов — Unity Assets Explorer.

Графический интерфейс программы не отличается удобством, а также она страдает от нескольких критических багов. Не взирая на это, программа вполне способна извлечь большинство текстур и шейдеров из игры. Полученные в результате текстуры будут иметь формат DDS, который можно «прочитать» с помощью Windows Texture Viewer.

С шейдерами ситуация обстоит сложнее: они извлекаются в уже скомпилированным виде и, насколько мне известно, решений для их автоматической трансляции в удобочитаемый формат не существует. Тем не менее, это обстоятельство не мешает импортировать и использовать полученные шейдеры в другом Unity-проекте. Не забывайте, однако, что подобная «кража» нарушает авторские права и является актом пиратства.

Установка программы dnSpy

dnSpy — это утилита для декомпиляция приложений на языке программирования C#. Инструкцию по установке можно найти на официальной страничке автора на github. Также в конце статьи будет ссылка на скачивание программы из статьи.

Файлы из папки не удалять и не перемещать. В противном случае, программа работать не будет!

Поиск нужный файлов

Для того, чтобы получить исходный код игры скачиваем ее (можно и Steam версию игры). Далее нам нужно найти ее локальные файлы. Для этого заходим в ‘свойства‘ >> ‘локальные файлы’ >> ‘просмотреть локальные файлы‘. Далее, нужно немного порыться и найти папочку Managed‘.

Убедитесь, что игра написана на Unity!

В этой папке будет много файлов с расширением .dll. Нам нужен только 1 из них. Assembly-CSharp.dll

Работа в dnSpy

Для начала кинем наш файл в dnSpy. После этого вы увидите подобную картину.

У вас может не быть некоторых файлов, они появятся со временем работы.

Нажимаем на стрелочку слева от название нашего файла. Далее тоже самое, только в открывшемся взору файле. Получаем много файлов. Все это — код.

Нам нужен только раздел под названием «-«. Нажимаем на стрелочку слева. И видим множество файлов, что и есть исходный код. Вы можете в нем покопаться и изменить, например прозрачность стен или, например, иконки персонажей и оружия.

Чтобы что-то поменять в коде нужно нажать по нему ПКМ и выбрать «Изменить класс (C#)». Ставим под себя и нажимаем на «Скомпилировать» . Ссылка на скачивание — ТЫК

Взламываем исходный код через IlSpy и dotPeek

Для Windows-сборок Unity компилирует и сохраняет исходный код всех игровых скриптов в директорию Managed . Интересуют нас следующие библиотеки: Assembly-CSharp.dll , Assembly-CSharp-firstpass.dll и Assembly-UnityScript.dll .

Для декомпиляции и просмотра managed-кода .NET библиотек (коими и являются наши жертвы) существуют довольно удобные и при этом бесплатные утилиты: IlSpy и dotPeek.

Данных подход особенно эффективен для наших целей: Unity очень скупо оптимизирует исходный код игровых скриптов, практически не изменяя его структуру, а также не скрывает названия переменных. Это позволяет с легкостью читать и понимать декомпилированный материал.

Дополнительные видео по нашей теме

Извлекаем 3D-модели

Трёхмерные модели в типовой Unity-сборке «разбросаны» по различным ресурсам, а некоторые из них и вовсе могут генерироваться во время игры. Вместо копания в файлах, существует интересная альтернатива — получить данные о геометрии прямиком из памяти графического ускорителя.

Когда игра запущена, вся информация о текстурах и моделях, видимых на экране, находится в памяти видеокарты. С помощью утилиты 3D Ripper DX можно извлечь всю эту информацию и сохранить в формате, понятном 3D-редакторам (например, 3D Studio Max). Учтите, что программа не самая простая в обращении — возможно, придётся обратиться к документации.

Взламываем PlayerPrefs

PlayerPrefs — это класс из стандартной библиотеки Unity, который позволяет сохранять данные в долговременную память устройства. Он часто используется разработчиками для хранения различных настроек, достижений, прогресса игрока и другой информации о состоянии игры. На ОС Windows эти данные сохраняются в системном реестре по следующему пути: HKEY_CURRENT_USER\Software\[company name]\[game name] .

Заключение

Грубо говоря, в этой статье мы научились менять игру под себя. Если вы немного шарите в C#, вы можете исправить игру так, будто вы скачали читы. Будучи установленной на пользовательское устройство, игра фактически раскрывает все свои текстуры, модели и исходный код. Декомпилировать игру и украсть ресурсы — это лишь вопрос времени.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *