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