Как узнать исходный код программы? [дубликат]
Нужно узнать исходный код программы, написанной на C++. (Почему именно на с++? — Не спрашивайте, просто знаю и всё.) Для особо любознательных говорю, что программа эта является читом для css и мне не только интересно, как она работает, но ещё я бы хотел её чуть-чуть исправить, потому что как только ты убиваешь кого-либо, то она в чатике пишет headshot, а меня это бесит.
Отслеживать
51.2k 85 85 золотых знаков 264 264 серебряных знака 505 505 бронзовых знаков
задан 19 ноя 2011 в 6:44
Вова Сысков Вова Сысков
219 1 1 золотой знак 9 9 серебряных знаков 24 24 бронзовых знака
6 ответов 6
Сортировка: Сброс на вариант по умолчанию
ну исходный код на С++ ты ни как не получишь, а вот дизассемблировать вполне можно. погляди на IDA Pro. лучше инструмента под Windows я не видел. Если изменить ход программы нужно совсем чуток, то можешь воспользоваться OllyDbg. И прямо на ходу изменить ассеблерные команды в нужном месте и сохранить новый дамп.
Уроки и статьи по дизассемблированию можешь найти на wasm.ru.
Отслеживать
ответ дан 19 ноя 2011 в 6:56
602 4 4 серебряных знака 17 17 бронзовых знаков
Насчет дизассемблирования вам уже ответили, скажу чуть подробнее по самой проблеме.
В том случае, если exeшник aimbot’а никак не запакован (в таком случае необходимо руками снять соответствующий пакер), то строковые константы обычно хранятся в одной части файла и все вместе.
Т.е, вполне вероятно, что даже без использования IDA для реверсинга, можно в любом hex- редакторе подправить неустраивающую вас строчку ( headshot ) на что-либо менее заметное.
Исходный код игры: что это такое и как можно его заполучить?
Исходный код игры — это тот самый код, который пишет программист, чтобы игра заработала. Он может быть написан на любом удобном программисту языке программирования.
Для тех , кто не знае т, я зыки программирования нужны для человека, а не для компьютера. С их помощью программист пишет программы, которые удобно читать и понимать человеку. Поэтом у в основно м п рограммисты стараются писать код качественно, компактно и красиво для своего же удобства. А компьютеру совершенно не важна красота исходного кода, потому что он понимает только свой машинный язык, который состоит из единиц и нулей. Большинство написанных программистом программ компилируется в машинный язык, который человеку очень сложно понять.
Так происходит и с кодом игр. Программист пишет игр у н а известном ему языке и выпускает ее в широкое пользование. Исходный код игры обычно закрыт, а пользователям игры доступен лишь машинный код игры, который достаточно сложно понять. Можно ли с машинного кода получить исходный код? В принципе , можно, но это очень трудная и кропотливая работа с применением различных инструментов и подходов к анализу получаемых результатов. Для такого комплекса проводимых работ придуман даже свой термин — реверс-инженеринг ( реверсная инженерия или обратное программирование ) . Само действие по конвертации кода из машинного в код языка программирования называется декомпиляцией. И это действие является обязательной частью реверс-инженер ии .
Исходный код игры
Нужно понимать, что реверсная инженерия не дает стопроцентный результат. Полученный код с применением инструментов для реверса не будет кодом , идентичным исходному, но может быть очень похожим на него. Настоящий исходный код игры может быть доступен только в том случае, если разработчик опубликует его в открытом доступе.
Иногда разработчики используют такую практику — публикуют исходники игры в открытом доступе, чтобы каждый, кто смыслит в программировании, смог внести свою лепту в развитие игры. При этом авторское право сохраняется за разработчиками игры и регулируется соответствующими лицензиями и документацией.
Но большинство игр распространяются по другому сценарию. Когда программист пишет игру, он закрывает исходный код от посторонних глаз и затем распространяет игру в виде скомпилированного файла. Скомпилированные файлы могут содержать как двоичный машинный код, так и объектный код или код из ассемблерных команд.
Например , вы скачиваете файл игры с «ехе»-расширением, чтобы установить такую игру к себе на компьютер с операционной системой Windows. Если вы попытаетесь открыть такой файл для просмотра его кода, то максимум , что вы там обнаружите , — это объектный код, который состоит из «смеси» цифр и букв в 16-битовой системе исчисления. Полностью восстановить из объектного кода исходный не представляется возможным, только его частичное восстановление, чтобы можно было «уловить» алгоритмы и логику в игре.
В общем, нужно понимать простую вещь : в основном игры пишутся на компилируемых языках. А это значит, что код игры должен пройти процесс компиляции, для того чтобы его мог «понять» компьютер. А компиляция — это односторонний процесс, который всегда происходит только в одном направлении. Это означает, что обратное программирование — это всего лишь попытка воссоздать исходный код игры.
Исходный код игры: для чего закрывать и для чего его хочется заполучить
- с закрытым исходным кодом;
- с открытым исходным кодом.
Для чего нужен исходный код игры
Чуть выше мы уже обсудили, что иногда и сходный код нужен, чтобы клонировать игру. Но бывают более мелкие «нужды», например , хочется написать какой-либо мод или даже чит к игре. В этих случаях вам необязательно искать весь исходный код. Иногда разработчики открывают код игры частично, чтобы «мододелы» могли писать моды. В некоторых ситуациях фанаты игры уже частично восстановили исходный код интересующей вас игры и выложили в сеть. Вы не поверите, но у огромного числа «закрытых» игр уже есть «реверсные» версии, которые находятся в открытом доступе.
В общем, по конкретной игре нужно искать наличие исходного кода. Если же вы просто хотите «поиграться» с исходным кодом какой-либо игры, то мож ете найти игры 90-х или 2000-х годов, у которых исходный код открыт , и экспериментируйте сколько душе угодно.
Заключение
Исходный код игры — это гарантия авторского права на игру. У кого исходники, тот и автор. Восстанавливать исходный код — это довольно сложное занятие, которое потребует от вас специальных знаний. А самое главное , что чем «больше» и сложнее игра, тем дольше и менее точным будет восстановленный исходный код игры.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Что такое «исходный код программы»?
Выдали ТЗ, с самим ТЗ проблем нет. Только Вот один момент, цитирую «надо прислать исходный код и запускаемый файл. Thirdparty не использовать.» Подскажите, исходный код это просто все классы, а запускаемый класс это один из них (Program)? Т.е. не присылать всю программу целиком, а только то что на скриншоте? И что такое 3d party? гугл выдает только перевод данной фразы
Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 73 73 бронзовых знака
задан 5 мар 2019 в 15:40
Kuzma Klimentov Kuzma Klimentov
45 4 4 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Зачастую под исходным кодом подразумевают все файлы (и .csproj и .sln в том числе) которые необходимы для успешного билда с настроенным окружением на машине (Есть Visual Studio, установлен MSBuild, допустим), но без файлов .dll, .csproj.Config и т.д.
Т.Е. без файлов которые зависят от твоих текущий настроек студии, и от того как ты сбилдил свой солюшн.
Вот гайд по пользованию .gitignore, все заигноренные в нем файле бессмысленны для билда из исходного кода. https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
Отслеживать
ответ дан 5 мар 2019 в 16:34
Borys Fursov Borys Fursov
188 5 5 бронзовых знаков
Запускаемый файл — это исполняемый файл (exe или dll), правда зачем он им — ума не приложу, видно сами не умеют собирать проект (это заказчики не умеющие программировать? тогда ладно. А вот если это контора программистов, куда вас собеседуют — я бы задумался)
По вопросу не совсем понятно, у вас приложение asp.net core (тогда на выходе exe-файл) или у вас сайт asp.net core (тогда у вас набор dll, получаемых при publish проекта).
По поводу компонентов третьих лиц, 3d party. Вам запрещается использовать какие-либо dll, сторонние Nuget-пакеты и т.п. вещи. Возможно, это будет не совсем удобно, но таково у вас ТЗ.
Отслеживать
ответ дан 5 мар 2019 в 15:59
28.5k 19 19 золотых знаков 58 58 серебряных знаков 136 136 бронзовых знаков
Это вообще странно (задание кста на трейни). Написано не использовать сторонние библиотеки , но в задании черным по белому «Для реализации взаимодействия с базой данных использовать Entity Framework.» Там 3 задания , одно консольное и два веб. Я все в один солюшн впихнул
5 мар 2019 в 20:12
Исходный код — весь код, включая все конфигурационные файлы.
Отслеживать
ответ дан 5 мар 2019 в 15:43
user9039204 user9039204
38 5 5 бронзовых знаков
T.e. весь проект целиком архивировать? включая reference properties и остальные?
5 мар 2019 в 15:45
ну по логике — да
5 мар 2019 в 15:47
- c#
- .net
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.20.43636
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
При подготовке материала использовались источники:
https://ru.stackoverflow.com/questions/55010/%D0%9A%D0%B0%D0%BA-%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%B4-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B
https://codernet.ru/articles/drugoe/isxodnyij_kod_igryi_chto_eto_takoe_i_kak_mozhno_ego_zapoluchit/
https://ru.stackoverflow.com/questions/952737/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%B4-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B