Steamworks용 합법적인 DLC 잠금 해제 프로그램
? 합법적인 DLC 잠금 해제
? 인벤토리 에뮬레이션
구성 없는 작업
다양한 설치 방법:
?️ 매장 모드
? 게임 모드
? 후크 모드
? 프록시 모드
? 최신 릴리스 다운로드
SmokeAPI 포럼 주제
SmokeAPI는 Steam 계정에서 합법적으로 소유한 게임을 위한 DLC 잠금 해제 프로그램입니다. 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 인벤토리가 있는 모든 게임에서 Steam 인벤토리가 작동하지 않습니다. 인벤토리 에뮬레이션이 작동하는 것으로 표시된 게임 목록은 다음과 같습니다.
프로젝트 윈터
유로 트럭 시뮬레이터 2
Hero Siege(EAC를 우회하는 경우)
경고 | 설치를 진행하는 데 따른 책임은 사용자 본인에게 있습니다. 이 잠금 해제 프로그램을 사용하면 하나 이상의 서비스 약관이 위반되어 계정이 영구적으로 손실될 수 있습니다. |
SmokeAPI는 다음 섹션에서 설명하는 스토어 모드와 게임 모드라는 두 가지 주요 설치 모드를 지원합니다.
메모 | 다음 지침에서는 수동 설치 방법을 설명합니다. Koalageddon v2를 사용하면 자동 설치 및 GUI 구성의 이점을 누릴 수 있습니다. |
이 설치 모드에서는 SmokeAPI가 Steam 프로세스에 로드되어 모든 Steam 게임에 영향을 미칠 수 있습니다.
Koaloader 릴리스에서 최신 Koaloader 릴리스 zip을 다운로드하세요.
Koaloader 아카이브에서 version-32
의 version.dll
압축을 풀고 Steam 디렉터리 [1] 에 넣습니다.
Steam 디렉토리 [1] 에서 다음 Koaloader 구성 파일을 생성하십시오:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
SmokeAPI 릴리스에서 최신 SmokeAPI 릴리스 zip을 다운로드하세요.
SmokeAPI 아카이브에서 steam_api.dll
압축을 풀고 이름을 SmokeAPI.dll
로 바꾸고 Steam 디렉토리에 배치합니다 [1] .
이 설치 모드에서는 SmokeAPI가 게임 프로세스에 로드되어 해당 특정 게임으로만 제한됩니다. 이 모드 자체는 후크 모드와 프록시 모드의 두 가지 모드를 지원합니다. 먼저 후크 모드에서 잠금 해제 장치를 설치해 보세요. 작동하지 않으면 프록시 모드로 설치해 보세요.
Koaloader 릴리스에서 최신 Koaloader 릴리스 zip을 다운로드하세요.
Koaloader 아카이브에서 게임 비트에 따라 버전-32/64에서 version.dll
압축을 풀고 게임 exe 파일 옆에 배치합니다.
SmokeAPI 릴리스에서 최신 SmokeAPI 릴리스 zip을 다운로드하세요.
SmokeAPI 아카이브에서 steam_api.dll
/ steam_api64.dll
의 압축을 풀고 게임 비트에 따라 이름을 SmokeAPI.dll
로 바꾸고 게임 exe 파일 옆에 배치합니다.
게임 디렉터리에서 steam_api.dll
/ steam_api64.dll
파일을 찾아 이름을 steam_api_o.dll
/ steam_api64_o.dll
로 바꿉니다.
SmokeAPI 릴리스에서 최신 SmokeAPI 릴리스 zip을 다운로드하세요.
SmokeAPI 아카이브에서 게임 비트에 따라 steam_api.dll
/ steam_api64.dll
의 압축을 풀고 원본 steam_api DLL 파일 옆에 놓습니다.
잠금 해제 장치가 예상대로 작동하지 않는 경우 SmokeAPI 포럼 주제에서 지원을 요청하기 전에 일반 잠금 해제 장치 설치 지침을 자세히 읽어 보십시오.
메모 | 이 문서에서는 SmokeAPI 버전 2의 구성을 설명합니다. 여기에서 버전 1 문서를 찾을 수 있습니다. |
SmokeAPI에는 수동 구성이 필요하지 않습니다. 기본적으로 가장 합리적인 옵션을 사용하고 가능한 모든 DLC를 잠금 해제하려고 시도합니다. 그러나 특정 DLC를 비활성화하거나 일부 DLC만 선택적으로 활성화하는 등 더욱 맞춤화된 동작이 필요한 상황이 있을 수 있습니다. 이 경우 이 리포지토리 또는 릴리스 zip에서 찾을 수 있는 구성 파일 SmokeAPI.config.json을 사용할 수 있습니다. 이를 사용하려면 SmokeAPI DLL 옆에 배치하기만 하면 됩니다. 게임이나 매장을 시작할 때마다 읽혀집니다. 구성 파일이 없으면 아래에 지정된 기본값이 사용됩니다. 구성 파일은 Json 표준을 준수해야 합니다.
logging
SmokeAPI.log.log
파일 생성을 전환합니다.
유형 | 부울 |
기본 | |
unlock_family_sharing
저장 모드에만 해당됩니다 . 공유 라이브러리를 빌리는 사람이 라이브러리 소유자가 게임을 하고 있을 때 게임을 시작하고 계속할 수 있도록 가족 공유 우회를 전환합니다.
유형 | 부울 |
기본 | |
default_app_status
이 옵션은 기본 DLC 잠금 해제 동작을 설정합니다.
가능한 값 |
| ||||
유형 | 끈 | ||||
기본 | |
override_app_status
이 옵션은 지정된 앱 ID [2] 에 속하는 모든 DLC의 상태를 재정의합니다.
가능한 값 | 키-값 쌍이 있는 객체입니다. 여기서 키는 앱 ID에 해당하고 값은 앱 상태에 해당합니다. 가능한 앱 상태 값은 |
유형 | 물체 |
기본 | |
override_dlc_status
이 옵션은 해당 앱 상태에 관계없이 개별 DLC의 상태를 재정의합니다.
가능한 값 | 키-값 쌍이 있는 객체입니다. 여기서 키는 앱 ID에 해당하고 값은 앱 상태에 해당합니다. 가능한 앱 상태 값은 |
유형 | 물체 |
기본 | |
auto_inject_inventory
게임이 사용자 인벤토리를 쿼리할 때 SmokeAPI가 등록된 모든 인벤토리 항목 목록을 자동으로 삽입해야 하는지 여부를 전환합니다.
유형 | 부울 |
기본 | |
extra_inventory_items
자동 주입된 아이템 외에 추가될 인벤토리 아이템 ID [2] 목록입니다.
유형 | 배열(정수) |
기본 | |
$version
GUI 구성 편집기와 같은 도구에서 사용하도록 예약된 기술 분야입니다. 이 값을 수정하지 마십시오.
유형 | 정수 |
기본 | |
extra_dlcs
이 옵션의 사용 사례를 이해하려면 DLC 수가 많은 게임에서 SmokeAPI가 작동하는 방식을 참조하세요.
가능한 값 | 키-값 쌍이 있는 개체입니다. 여기서 키는 앱 ID에 해당하고 값은 DLC ID가 포함된 개체에 해당합니다. 형식은 앞서 언급한 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 수가 많은 일부 게임은 Steamworks API에 사용 가능한 모든 DLC 목록을 쿼리하여 소유권 확인을 시작합니다. 게임이 목록을 받으면 각 항목을 검토하고 소유권을 확인합니다. 문제는 사용자가 보유하고 있는 소유하지 않은 DLC의 양에 따라 Steamworks SDK의 응답이 최대 64개에 달할 수 있다는 사실에서 발생합니다. 이 문제를 완화하기 위해 SmokeAPI는 대부분의 경우 잘 작동하는 전체 DLC 목록을 Steam API에 웹으로 요청합니다. 불행히도 웹 API조차도 Steam 상점에서 사용할 수 있는 DLC만 반환하기 때문에 모든 문제를 해결하지는 못합니다. 즉, 사전 주문 DLC와 같이 전용 매장 제공이 없는 DLC는 제외됩니다. extra_dlcs
구성 옵션이 작동하는 곳입니다. 거기에서 누락된 DLC ID를 지정할 수 있으며, SmokeAPI가 해당 ID를 게임에서 사용할 수 있도록 합니다. 그러나 이로 인해 수동 구성이 필요하게 되었으며 이는 이 프로젝트의 이상에 어긋납니다. 이 문제를 해결하기 위해 SmokeAPI는 GitHub 저장소에 저장된 추가 DLC 목록을 수동으로 가져옵니다. 이 문서의 목적은 Steam 상점 페이지가 없는 모든 DLC ID를 포함하는 것입니다. 이를 통해 SmokeAPI는 구성 파일이 전혀 없이 모든 DLC를 잠금 해제할 수 있습니다. 64개 이상의 DLC가 있고 전용 상점 페이지가 없는 DLC가 있는 게임을 SmokeAPI 포럼 주제에 자유롭게 신고해 주세요. 구성 없는 작업을 용이하게 하기 위해 누락된 DLC ID 목록에 추가됩니다.
CMake v3.24(powershell에서 cmake를 사용할 수 있는지 확인)
비주얼 스튜디오 2022 [3] .
Windows 11 SDK(10.0.22621.0) [3] 에서 테스트되었습니다.
프로젝트 빌드
.build.ps1 <아키텍처> <구성>
어디
아치 | |
구성 | |
예를 들어:
.build.ps1 32 디버그
이 프로젝트는 KoalaBox Readme에 지정된 오픈 소스 프로젝트를 사용합니다.
이 소프트웨어는 Unlicense에 따라 라이센스가 부여되며 해당 조건은 UNLICENSE.txt에서 확인할 수 있습니다.