Легальный разблокировщик DLC для Steamworks
? Легальная разблокировка DLC
? Эмуляция инвентаря
Работа без конфигурации
Несколько способов установки:
?️ Режим магазина
? Игровой режим
? Режим крючка
? Режим прокси
? Загрузите последнюю версию
Тема форума SmokeAPI
SmokeAPI — это программа для разблокировки DLC для игр, которые на законных основаниях принадлежат вашей учетной записи Steam. Он пытается обмануть игры, использующие Steamworks SDK, заставив их поверить в то, что у вас есть нужные DLC. Однако SmokeAPI не изменяет остальную часть Steamworks SDK, поэтому такие функции, как многопользовательская игра, достижения и т. д., остаются полностью функциональными.
SmokeAPI стремится поддерживать все выпущенные версии SteamAPI. При обнаружении новой, неподдерживаемой версии интерфейса он будет использовать последнюю поддерживаемую версию. Ниже приведен список поддерживаемых версий интерфейса:
ISteamClient v6 — v20. (Версии до 6 не содержали никаких интерфейсов, связанных с DLC)
ISteamApps v2 — v8. (Версия 1 не содержала никаких функций, связанных с DLC)
ISteamUser v12 — v21. (Версии до 12 не содержали никаких функций, связанных с DLC)
ISteamInventory v1 — v3.
Инвентарь Steam работает не во всех играх со стим инвентарем из-за кастомной реализации и онлайн-проверок. Список игр, в которых эмуляция инвентаря работает, выглядит следующим образом:
Проект Зима
Европейский симулятор грузовиков 2
Hero Siege (если вы обойдете EAC)
Предупреждение | Пожалуйста, приступайте к установке на свой страх и риск. Использование этого разблокировщика влечет за собой нарушение одного или нескольких условий обслуживания, что может привести к безвозвратной потере вашей учетной записи. |
SmokeAPI поддерживает 2 основных режима установки: режим магазина и режим игры , которые описаны в следующем разделе.
Примечание | Стоит отметить, что в следующих инструкциях описан ручной метод установки. Вы можете воспользоваться преимуществами автоматической установки и настройки графического интерфейса, используя Koalageddon v2. |
В этом режиме установки SmokeAPI загружается в процесс Steam, что позволяет ему влиять на все игры Steam.
Загрузите последнюю версию zip-архива Koaloader с сайта Koaloader Releases.
Из архива Koaloader распакуйте version.dll
от version-32
и поместите ее в каталог Steam [1] .
В каталоге Steam [1] создайте следующий файл конфигурации Koaloader:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
Загрузите последний zip-архив выпуска SmokeAPI с сайта SmokeAPI Releases.
Из архива SmokeAPI распакуйте steam_api.dll
, переименуйте его в SmokeAPI.dll
и поместите в каталог Steam [1] .
В этом режиме установки SmokeAPI загружается в игровой процесс, что ограничивает его работу только этой конкретной игрой. Сам этот режим поддерживает 2 режима: режим перехвата и режим прокси. Попробуйте сначала установить анлокер в режиме хука. Если не помогло, попробуйте установить его в режиме прокси.
Загрузите последнюю версию zip-архива Koaloader с сайта Koaloader Releases.
Из архива Koaloader распакуйте version.dll
от версии-32/64, в зависимости от разрядности игры, и поместите рядом с exe-файлом игры.
Загрузите последний zip-архив выпуска SmokeAPI с сайта SmokeAPI Releases.
Из архива SmokeAPI распакуйте steam_api.dll
/ steam_api64.dll
, в зависимости от разрядности игры, переименуйте его в SmokeAPI.dll
и поместите рядом с exe-файлом игры.
Найдите файл steam_api.dll
/ steam_api64.dll
в каталоге игры и переименуйте его в steam_api_o.dll
/ steam_api64_o.dll
.
Загрузите последний zip-архив выпуска SmokeAPI с сайта SmokeAPI Releases.
Из архива SmokeAPI распакуйте steam_api.dll
/ steam_api64.dll
в зависимости от разрядности игры и поместите рядом с оригинальным DLL-файлом steam_api.
Если программа разблокировки не работает должным образом, пожалуйста, полностью прочтите Инструкции по установке универсальной программы разблокировки, прежде чем обращаться за поддержкой в тему форума SmokeAPI.
Примечание | В этом документе описывается конфигурация для версии 2 SmokeAPI. Документацию по версии 1 можно найти здесь. |
SmokeAPI не требует ручной настройки. По умолчанию он использует наиболее разумные варианты и пытается разблокировать все DLC, которые может. Однако могут возникнуть обстоятельства, при которых вам потребуется более индивидуальное поведение, например отключение определенных DLC или выборочное включение только некоторых из них. В этом случае вы можете использовать файл конфигурации SmokeAPI.config.json, который вы можете найти здесь, в этом репозитории или в zip-архиве выпуска. Чтобы использовать его, просто поместите его рядом с DLL SmokeAPI. Он будет читаться при каждом запуске игры или магазина. При отсутствии файла конфигурации будут использоваться значения по умолчанию, указанные ниже. Ожидается, что файл конфигурации будет соответствовать стандарту Json.
logging
Переключает создание файла SmokeAPI.log.log
.
Тип | логическое значение |
По умолчанию | |
unlock_family_sharing
Только режим магазина . Включает обход семейного доступа, который позволяет пользователю общей библиотеки начинать и продолжать играть в игры, когда владелец библиотеки также играет.
Тип | логическое значение |
По умолчанию | |
default_app_status
Эта опция устанавливает поведение разблокировки DLC по умолчанию.
Возможные значения |
| ||||
Тип | Нить | ||||
По умолчанию | |
override_app_status
Эта опция переопределяет статус всех DLC, принадлежащих указанному идентификатору приложения [2] .
Возможные значения | Объект с парами «ключ-значение», где ключ соответствует идентификатору приложения, а значение — статусу приложения. Возможные значения статуса приложения определяются в опции |
Тип | Объект |
По умолчанию | |
override_dlc_status
Эта опция отменяет статус отдельных DLC, независимо от статуса соответствующего приложения.
Возможные значения | Объект с парами «ключ-значение», где ключ соответствует идентификатору приложения, а значение — статусу приложения. Возможные значения статуса приложения определяются в опции |
Тип | Объект |
По умолчанию | |
auto_inject_inventory
Переключает, должен ли SmokeAPI автоматически вставлять список всех зарегистрированных предметов инвентаря, когда игра запрашивает инвентарь пользователя.
Тип | логическое значение |
По умолчанию | |
extra_inventory_items
Список идентификаторов элементов инвентаря [2] , которые будут добавлены в дополнение к автоматически добавляемым элементам.
Тип | Массив (целых чисел) |
По умолчанию | |
$version
Техническое поле, зарезервированное для использования такими инструментами, как редакторы конфигурации графического пользовательского интерфейса. Не изменяйте это значение.
Тип | Целое число |
По умолчанию | |
extra_dlcs
Посмотрите, как SmokeAPI работает в играх с большим количеством DLC, чтобы понять вариант использования этой опции.
Возможные значения | Объект с парами «ключ-значение», где ключ соответствует идентификатору приложения, а значение — объекту, содержащему идентификаторы DLC. Формат тот же, что и в вышеупомянутой конфигурации GitHub. |
Тип | Объект |
По умолчанию | |
store_config
Только режим магазина . Объект, определяющий смещения, необходимые для работы в режиме хранилища. Он переопределит конфигурацию, полученную из удаленного источника или локального кэша. Не изменяйте это значение, если вы не знаете, что делаете.
Тип | Объект |
По умолчанию | Посмотреть онлайн-конфигурацию |
{
"$version" : 2 ,
"logging" : true ,
"unlock_family_sharing" : true ,
"default_app_status" : " unlocked " ,
"override_app_status" : {
"1234" : " original " ,
"4321" : " unlocked "
},
"override_dlc_status" : {
"1234" : " original " ,
"4321" : " unlocked " ,
"5678" : " locked "
},
"auto_inject_inventory" : true ,
"extra_inventory_items" : [],
"extra_dlcs" : {
"1234" : {
"dlcs" : {
"56789" : " Example DLC 1 "
}
},
"4321" : {
"dlcs" : {
"98765" : " Example DLC 2 " ,
"98766" : " Example DLC 3 "
}
}
},
"store_config" : {
"client_engine_steam_client_internal_ordinal" : 12 ,
"steam_client_internal_interface_selector_ordinal" : 18 ,
"vstdlib_callback_address_offset" : 20 ,
"vstdlib_callback_data_offset" : 0 ,
"vstdlib_callback_interceptor_address_offset" : 1 ,
"vstdlib_callback_name_offset" : 4
}
}
Некоторые игры с большим количеством DLC начинают проверку владения с запроса к API Steamworks списка всех доступных DLC. Как только игра получит список, она просмотрит каждый элемент и проверит владельца. Проблема возникает из-за того, что ответ Steamworks SDK может достигать 64, в зависимости от того, сколько DLC у пользователя нет. Чтобы решить эту проблему, SmokeAPI отправит веб-запрос к Steam API для получения полного списка DLC, что в большинстве случаев работает хорошо. К сожалению, даже веб-API не решает всех наших проблем, поскольку возвращает только те DLC, которые доступны в магазине Steam. Это означает, что DLC без специального предложения в магазине, например DLC по предварительному заказу, будут исключены. Вот тут-то и вступает в игру опция конфигурации extra_dlcs
. Вы можете указать там недостающие идентификаторы DLC, и SmokeAPI сделает их доступными для игры. Однако это приводит к необходимости ручной настройки, что противоречит идеалам этого проекта. Чтобы решить эту проблему, SmokeAPI также будет получать вручную поддерживаемый список дополнительных DLC, хранящихся в репозитории GitHub. Цель этого документа — собрать все идентификаторы DLC, у которых нет страницы в магазине Steam. Это позволяет SmokeAPI разблокировать все DLC вообще без какого-либо файла конфигурации. Не стесняйтесь сообщать в теме форума SmokeAPI об играх, имеющих более 64 DLC, а также о DLC без специальной страницы в магазине. Они будут добавлены в список отсутствующих идентификаторов DLC, чтобы облегчить работу без настройки.
CMake v3.24 (убедитесь, что cmake доступен из PowerShell)
Visual Studio 2022 [3] .
Протестировано на Windows 11 SDK (10.0.22621.0) [3] .
Создать проект
.build.ps1 <арха> <конфигурация>
где
арка | |
конфигурация | |
Например:
.build.ps1 32 Отладка
В этом проекте используются проекты с открытым исходным кодом, указанные в файле Readme KoalaBox.
Это программное обеспечение лицензируется на условиях Unlicense, условия которого доступны в UNLICENSE.txt.