Как я загрузил игру в Steam в обход Valve. Визуально добавляем игру в стим, для игры в пиратку или с другом Получение подтверждения коллекционных карточек Steam

Главная / Офисные

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

Разработка игры

Многие геймеры, когда играют в очередной крупный проект, даже не задумываются о том, через что он прошел, прежде чем попал к ним в руки. Если вы хотите узнать про патч, что это такое, как его использовать и зачем он нужен, вам нужно понимать, как создаются компьютерные игры. Естественно, здесь не будет описан весь процесс, потому что он невероятно долгий и многосторонний. Более того, большая часть его не является жизненно важной для этого вопроса. Самое необходимое, что вам стоит знать - это стадия тестирования. Когда разработка игры заканчивается, то уже готовый и играбельный проект отправляется на альфа-тестирование. Здесь профессиональные тестировщики проверяют работоспособность игры, указывают на недостатки и проблемы, которые исправляются еще до выхода игры в свет. После этого начинается бета-тестирование, которое может быть открытым или закрытым. Здесь уже геймеры сами тестируют игру и сообщают разработчикам о том, что с ней не так - в зависимости от типа тестирования, проект оказывается в открытом доступе, либо определенной группе людей дается возможность проверить его. И после этого проводятся финальные доработки и исправления - и проект выходит в продажу. Однако даже такая внимательная и дотошная многоуровневая проверка не всегда способна обнаружить все минусы, поэтому и существует такое понятие как патч. Что это такое? В данной статье вы узнаете все о патчах.

Итак, теперь вы представляете себе, как проходит тестирование игры, но почему же нужен патч? Что это такое? Как могут легко понять знатоки английского языка, патч - это "заплатка" для игры, небольшая программа, которая устанавливается в игру и исправляет в ней определенные моменты. К сожалению, даже самая многоуровневая проверка может не обнаружить все ошибки, которые содержатся в игре - они всплывают только после релиза. Именно тут и вступает в силу патч - разработчики собирают информацию о том, какие ошибки все еще присутствуют в игре, разрабатывают для них заплатку и предоставляют ее для свободного скачивания. Таким образом, игрокам не приходится платить повторно на версию без ошибок - они могут "пропатчить" уже имеющуюся игру. Однако какими бывают патчи? Ведь встречаются самые разнообразные варианты.

Стандартный патч

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

Кумулятивные патчи

Отдельно стоит поговорить о кумулятивных патчах. Например, они очень часто могут встретиться для игры "Сталкер" - патчи подобного рода содержат в себе сразу несколько заплаток, которые выходили в свет ранее. Таким образом, вместо того чтобы качать каждый вышедший патч по отдельности и устанавливать их по одному, вы можете скачать кумулятивный патч, который будет содержать в себе все изменения предыдущих заплаток, что невероятно удобно.

Как пропатчить игру?

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

Если вы заходили на главную страничку Steam ночью воскресенья, возможно, вы заметили довольно интересное новое предложение: «Watch paint dry». Это вызвало множество разногласий (а я успел повеселиться на форуме) в Steam, поскольку люди утверждали, что Valve/Steam полностью потеряли контроль над качеством игр в Greenlight, хотя эта игра никогда даже и не проходила Greenlight.

Я даже не платил $100 за Steam Greenlight Submission Fee , для того чтобы сократить себе время загрузки дистрибутива на сервер. Лично я считаю, что Greenlight - это прекрасная платформа, для того чтобы люди выставляли свои игры, и благодаря ей работа инди-разработчика уже стала и продолжит оставаться успешной профессией.

Я хотел бы заранее извиниться, если я чем-то оскорбил инди-разработчиков, которые испытывают какие-либо затруднения по публикации своих игр в Steam. Все это - не более чем проделка, совершенная ради теста, для того чтобы проверить то, что я пытался донести до Valve последние несколько месяцев - о возможности загрузить в Steam любую игру без возможности проверки сотрудниками Valve.

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

Получение аккаунта SteamWorks

Это начинает становиться техническим гайдом, но получение доступа к SteamWorks стало для меня началом исследования этой проблемы. Я не могу комментировать как/почему я получил доступ к SteamWorks, но я подтвержу, что у меня не было никаких лазеек ни при оформлении документов в интернете, ни в Greenlight, ни в самой Valve. Несмотря на то, что она больше не работает, я не собираюсь оглашать какие-либо детали, того, как это было сделано, поэтому не просите меня об этом. У меня есть на то причины.


Как бы то ни было, я получил доступ в SteamWorks (внутренняя платформа Valve для публикации в Steam, основа для создания достижений, DRM, мультиплеера и т.д.) и это подало мне идею поискать слабые места платформы. Я попробовал связаться насчет них с Valve, но не получил ответа. В конце концов, ближе к апрелю я решил использовать «безымянное приложение» в качестве первоапрельской шутки, дабы привлечь внимание Valve к этим проблемам.

«Я не буду рассказывать о том, как я создал симулятор сохнущей краски с геймплеем на 45 секунд в RPG Maker, поскольку я не слишком им доволен, да и вообще это неважно.»

Получение подтверждения коллекционных карточек Steam

Разве такая игра как «Симулятор сохнущей краски» обойдется без коллекционных карточек Steam?

За 10 минут Photoshop’а я создал веселья ради базовый шуточный набор. Однако Valve должны оценить карточки, смайлики и рубашки, перед тем как я выпущу их. Но оценили ли они?

С первого взгляда можно увидеть, что у статуса релиза есть несколько изначальных опций:


Интересно, что насчет источника этой формы:


Занимательно, что они отслеживают одновременно мою сессию и ID аккаунта редактора. Давайте попробуем изменить эти данные на данные работника Valve (т.е. 1). Например, изменить value в select на что-то несуществующее и посмотрим как это повлияет на форму.


Еще интереснее… Новая опция «Последний редактор» это кто-то из Valve. А что будет, если мы заново сохраним форму со статусом «Released»?


В итоге, когда я ввел неправильный запрос, он вернулся с целым списком опций и их значений. В данном случае я увидел, что статус «Released» имеет значение 5. Обновление формы вернуло мой «editor_accountid» назад, а изменение значения в выбранном окне “Ready for Review” с 3 на 5, сохранило все это на сервер, словно бы мои коллекционные карточки подтвердили. Сервер не делает проверку, если кто-то из Valve утвердил карточки и ставит статус «Released». А теперь перейдем к загрузке самой игры.

Процесс утверждения Valve

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

Главное событие: выпуск игры

Сайт Steamworks написан в основном на AJAX. Весь код функций Javascript, на котором базируется источник, весьма запутан, но доступен для чтения кому угодно (зарегистрированному в Steamworks). В коде много интересно, но так как эта игра была скорее доказательством идеи, я придерживался того, что было важно и нашел интересную функцию Javascript «ReleaseGame(appid, data) ». Похоже, что это создало типичный запрос в AJAX (хотя в нем не было никакой аутенфикации) к Steam и, как там говориться, приложение было выпущено.


Я попытался вызвать ReleaseGame со значением 445730 (мой appid) , не заполнив данные и получил ошибку 403 (доступ заблокирован). Интересно. Я просмотрел несколько других функций в файле и заметил, что большинство из них добавляли значения в JSON-запрос, названный “sessionid” с тем Session ID, который мы видели ранее, когда выпускали наши коллекционные карточки.


Итак, вызываем ReleaseGame(445730, { ‘sessionid’: ‘my_session_id’)


Переходим на страницу магазина Steam:


Тадам! Должен признать, что появление игры в разделе новых релизов было недосмотром с моей стороны. Изначально я хотел, чтобы она «выходила первого апреля» и не появлялась в Steam до пятницы. Хотя я и не ожидал, что она так долго продержится. Также признаю, что мне очень хотелось посмотреть, насколько далеко я могу зайти в процессе релиза игры. Но я думаю, то, что она не появилась в продаже - это к лучшему.

Позже я связался с Valve, которые исправили все вышеописанное.

Чему я действительно научился, так это тому, что когда работаешь с создаваемым юзерами контентом, который должен получить одобрение, не стоит выставлять в качестве значений для этого контента только «Review Ready» и «Reviewed». Вместо этого попробуйте подойти к этому иначе, создайте «билеты для рецензирования» каждого элемента контента или что-то в этом роде. Или просто не давайте пользователям возможности отправлять предмет в релиз.

Добрый час, %USERNAME% ! В моей предыдущей статье "Steam CEG от Valve и с чем его едят. Введение " было дано лишь абстрактное понимание и принципы работы технологии CEG. В этой статье будет по абсолютному минимуму теории и преобладающее большинство практики. Сегодня и сейчас мы рассмотрим, можно ли «отучить» от этой защиты заветный исполняемый файл.

Шаг I. Выбор «жертвы» и ее анализ
Наличие CEG, причем любой версии, можно легко обнаружить по наличию в заголовке файле секции .version и первых четырех байтов в ней же (78 56 34 12 ):

Заведомо зная эту информацию и немного порыскав в библиотеке Steam, мой выбор пал на HD переиздание легендарной Age of Mythology c приставкой "Extended Edition ". После успешного завершения загрузки, подождав пару секунд, пока CEG подпишет исполняемый файл, открываем его в нашем отладчике, в моем случае в x64dbg . Ах да, стоит отметить, что товарищ CEG использует некоторые средства анти-отладки, поэтому будем использовать плагин ScyllaHide со следующими настройками:

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

Шаг II. Разбор полетов
Абсолютно в любой версии CEG существует одна функция, которая производит общий расчет нужных значений. Выглядит она следующим образом:

Зная это, ставим бряк либо на инструкции
mov eax, dword ptr ds:
,
либо на следующей:
mov dword ptr ds:,eax
:

Нажимаем "Run " (F9 ) и видим, что бряк сработал! «И что же это нам дало?» - спросите Вы, отвечаю: точное значение EAX в буфере. В этом можно убедиться, посмотрев в правую колонку напротив вкладки "CPU ":

Как видно из изображения, мы получили значение EDB88320 . Скопируем его в буфер обмена и пойдем дальше. Нажимаем "Step Over " (F8 ) два раза и оказываемся внутри одной из функций, используемой CEG. И вот на этом этапе стоит сказать пару слов о существующих видах таких функций. Собственно, всего их может быть три типа:

1 . Функции с константным значением (Constant ) - возвращают константное значение, которое всегда будет одинаковым. Патчатся как:
mov eax, <значение> ret
;
2 . Функции со случайным значением (Random ) - возвращают любое целое значение. Патчатся как:
mov eax, <значение> ret
(используются лишь на новейших версиях CEG );
3 . Защитные функции (Protect ) - являются указателем, которые ведут к истинной функции Патчатся как:
jmp <адрес>
.

Теперь давайте вернемся к нашей игре. Мы внутри желанной функции и у нас в буфере правильное значение. Теперь мы должны определить вид нашей функции. Прокрутив пару инструкций вниз, мы увидим, что используется инструкция
lea eax, dword ptr ds
:

И это может означать только одно - мы имеем дело с функцией, которая возвращает константное значение. Вообще, следует запомнить, что если в буфере EAX оказываются значения типа: EDB88320 , 60 , 11 , 5 , 3f и т.д., то сразу будет понятно, что функция, которая использует это значение - будет константной. Почему? Потому, что это «общеизвестные» константные значения CEG, они будут одинаковыми на любой версии CEG. Поэтому, двигаемся в самое начало функции и корректируем ее, меняя на
mov eax, EDB88320
ret
:

Итак, что же дальше? А дальше мы снова все повторяем (разумеется, имея все тот же бряк на функции, которая вычисляет значения) до тех пор, пока игра не запустится (Profit!), что означает, что мы прошли все проверки CEG. Все?! Ну давайте посмотрим. Сохраняем файл с проделанными патчами и пробуем запустить на другом ПК (на который уже заведомо была скачана игра). И тут… облом. Игра не хочет запускаться! Ах да, мы забыли про еще одну немаловажную деталь! Дело в том, что CEG, как говорилось в первой статье, использует так называемые файловые проверки. Снова открыв отладчик, мы сможем легко обнаружить эти проверки по наличию характерных функций замечательного WinAPI : GetFileInformationByHandle , CreateFileW , OpenFileById , StringFromGUID2 , RegOpenKeyExW , SystemFunction036 и lstrcmpiW . В нашей игре - присутствует только одна такая проверка, найти ее можно сразу вбив GetFileInformationByHandle в поиск "References ":

Идем в начало и ищем функцию, которая вызывает данную проверку (ПКМ -> Find references -> To Selected Address (es) , либо сочетанием клавиш CTRL+R ). Будет она выглядеть следующим образом:

Ну что же, давайте сделаем это! Хотя это можно сделать и более изощренным способом, но мы поступим проще, используя
mov eax, 1 ret


Сохраняем результат проделанной работы и тестируем второй раз и о Боги, игра запустилась на другом аккаунте Steam и на другом ПК!

Шаг III. Полная отвязка игры от Steam (Yarr! Edition)
Разумеется, после полученного удовольствия, захотелось больше экстрима. А что, если я хочу просто поиграть с другом по локалке без всякого там Steam как в бородатые времена? Ну не вопрос. Для этого я скачал отличный эмулятор Steam с частичной поддержкой оверлея (!) под названием SmartSteamEmu . Настроив его, я запустил игру без включенного Steam. И что же я вижу - создался файл *.STEAMSTART и игра повисла в процессах. Подумав около тридцати секунд, игра таки запустилась и работала исправно. Но почему? Мы же все вроде сделали, ведь так? Да, это так, но мы забыли об одном маленьком штрихе. Дело в том, что этот файл события создается, когда процесс Steam не запущен и по сути является последней микро-проверкой. Ну что же, открываем отладчик в третий раз и ищем все функции с CreateFileA . Не стесняясь, ставим бряки на все функции (в данном случае их всего две). При запуске игры бряк сработал:

STEAMSTART , мы видим Вас! Итак, для того, чтобы покончить с этим недоразумением, просто меняем верхний JE на JNZ или JMP:

Сохраняем патч, снова пробуем запустить игру без Steam скрестив пальцы. И вуаля - игра запустилась в считанные секунды! Мы сделали с тобой это, CEG , ты уж прости нас.

Собственно, вывод
Попавшийся CEG в игре Age of Mythology: Extended Edition был не сложным. В этой игре не было ни Protect , ни Random функций, лишь одни Constant , что значительно упростило задачу. Так же в этой игре не было минорных проверок, в виде старого доброго CRC или новейших проверок ID процессора либо серийного номера жесткого диска .
В будущем, надеюсь, я смогу осилить эти две новые проверки и написать новую статью, а пока - до скорых встреч!

НУЖЕН ДРУГ ИЛИ 2 АККАУНТ ДЛЯ ЭТОЙ ПРОГРАММЫ!!!
Cразу говорю, дочитайте сначала и только потом все повторяйте, чтоб не было вопросов!
Короче говоря, эта программа что-то подобное AppID_patch. Однако, как уже известно, ее фиксанули и больше нельзя добавить себе игры. Эта программа делает что-то подобное.
Представьте: у вас есть друг, и у него есть игра, к примеру, Garry"s mod. И вы захотели поиграть в нее с ним, но у вас ее нет, только пиратка. Программа SteamCrack для этого и служит, ну как я понял.

Что ж, как ей пользоваться?

  1. Мы скачали архив и разархивировали его куда хотели
  2. Запускаем от имени Админа SteamCrack.exe и тыкаем на все окошки «Yes»
  3. Новости закрываем, если предложит обновится, то так и делаем.
  4. В открывшемся окне мы тыкаем на три точки «packageinfo.vdf» и ищем его по пути /steam/appcache/
  5. Выбрали? Тогда нажимаем patch steam и нам выдает «Have you closed Steam?» вырубаем стим, и тыкаем «Yes»
  6. Он выдаст откуда скачать SteamPatched, качаете откуда вам будет удобно.
  7. Скачав SteamPatched.zip кидаете его в папку с этой программой(Саму программу можно не закрывать) и в программе еще раз нажимаете Patch Steam, он проверит файлы и если их будет не хватать тыкаем в открывшемся окне patch steam, ну и засейвтесь, на всякий.

И вот то самое!

Вот ссылка на видео об этой программе на английском, ну с текстом.

Это сам разработчик, а еще он из Франции вроде бы.

Об остальных функциях.

  1. В «Add games» есть кнопка «Manual Search» - нажав на нее открывается магазин стима и вы там тыкаете по игре если не наши ее в листе игр и нажимаете «add».
  2. Просто «Manual add» - нажав на него, нужно написать название игры и ее ID, после нажав «Add» и «Done!»
  3. «Remove from list» - удаляет игры, которые вы добавили.
  4. «Reset» - удаляет файл packageinfo.vdf, нет ваши игры не пропадут, удалятся только те игры, которые вы добавили через данную программу
  5. Посмотреть обновления вы можете во вкладке «SteamCrack».Там же новости
  6. Если при первом запуске вы выбрали не тот язык, поменять его можно по кнопке «Changer de launge»
  7. Полностью удалить ее можно во вкладке SteamCrack ---> Reset ---> All
  8. Так же можно добавлять доп.контент
ВАЖНО!!!
Если вы хотите несколько игр на аккаунт, то выбирайте сразу, иначе при следующем использовании программы все полученные ранее игры просто слетят с аккаунта!
Для программы нужно MSVC2015 x86 and x64.Его можно получить скачав Visual Studio по данной ссылке
Так же программу сюда из-за веса и кривых рук добавить не могу. Ее можно скачать от сюда . Заливал не я, а разработчик данной программы. Просто у него под видосом ссылка, которая у многих не работает. Пришлось юзать прокси, чтобы ее скачать.
Автор вроде говорил, что хочет возвратить AppID_Patch.Ждите.

© 2024 kotaliti.ru -- Интернет. Безопасность. Программы. Изображения. Полезные советы