Pull to refresh
19
0
Алексей @RESTORATiON

Переводчик

Send message

Насчёт копирования steamclient64.dll, tier0_s64.dll, vstdlib_s64.dll: это лишнее. Собственно, достаточно иметь в папке steam_api64.dll: при инициализации библиотека откроет реестр и поищет место, где установлен Steam. После этого, из папки с клиентом спокойно подгрузится steamclient64.dll и остальные две.

Я видел своими глазами, что из себя представляет из себя Steam CEG SDK, по сему, я имею представление о том, как это работает. Вообще, я решил сделать эту статью для базового понимания, что же такое CEG, так как в интернете, вы вряд ли найдете много информации по этой теме. Естественно, если описывать процесс еще более детальным образом, на это уйдет намного больше времени и статей. И насчет привязки к аккаунту, это чушь, привязка идет к железу, папкам и файлам.
Согласен, возможно напишу статью, посвященную созданию простейшего эмулятора Steam (вопрос только, нужно ли это).
1. Если не патчить, то игра не запустится, так как каждая из функций будет вести к исключению. Если пропатчить не все функции, исход будет тот же.
3. К сожалению, обо всем очень подробно и разжевано написать не удалось в размере всего двух статей. Если я буду писать дальше статьи на эту тематику, я обязательно поведаю больше информации.
И насчет той проверки .STEAMSTART — это лишь полировка напильником, она ни на что не влияет, только на скорость старта игры.
Если только напрямую от разработчиков получить незащищенную версию бинарника. Вероятность равна нулю, в общем.
1. О функциях написано в статье. Значения, ни от чего не зависит, они являются константными, то бишь неизменными для всех версий CEG (так же упоминалось в статье). Возможно, при анализе более сложного CEG (в обозримом будущем), я сделаю упор на полное разжевывание этих функций;
2. О файловых проверках (а так же проверке реестра), писалось в предыдущей статье, ссылка на нее присутствует в начале статьи;
3. Так же писалось в статье, данный файл создается, если Steam не запущен, то есть фактически HANDLE процесса Steam равен нулю.
Так как эти значения будут одинаковыми на любой версии CEG. Так сказать, «общеизвестные» значения. Забыл еще значение 60.
Вникните в статью, ведь я написал, что информация о железе в данном случае будет храниться в исполняемом файле и только. ClientRegistry.blob к этому не имеет никакого отношения.
Не подписанный файл работать не будет, так как в нем не будет жизненно важных участков кода, которые и содержатся в этой самой цифровой подписи.
Спасибо за замечание, немного дополнил в подзаголовке "Немного определений". Вообще более детально о том, как работает сама защита на примере игры, я хотел написать в следующей статье, т.к. данная статья была, по сути, лишь абстрактным введением.
Есть конечно, еще с 2009 года, и одной из первых «ласточек», стала как раз игра, детище самой Valve — Left 4 Dead 2. Хотя тот, древний CEG, был ну очень примитивным. Сделав пару патчей в client.dll, можно было полностью отвязать его от сей защиты.
Я Вас понял, но с CEG такое не прокатит. Подобную вещь пробовал сделать около года назад, но увы — бинарники будут разными (при чем если сгенерировать несколько раз, очевидные различия будут в совершенно иных местах), даже если они сгенерированы с одного ПК и с того же аккаунта.
Дело в том, что если даже удалить исполняемый файл с одной системы, посредством проверки кэша, сгенерируется новый исполняемый файл, который будет разительно отличаться, чуть менее, чем полностью. В следующей статье я покажу на примере простенькой игры, как в принципе можно обойти эту магию.
Steam и правда пытается, изо всех сил. Valve выпускают все новые версии CEG, улучшают/оптимизируют защиту, но все тщетно, все равно происходит взлом игр за считанные часы, а иногда за минуты.

Information

Rating
Does not participate
Location
Николаев, Николаевская обл., Украина
Date of birth
Registered
Activity