Skip to content

Commit

Permalink
Update to nt-file-dupe
Browse files Browse the repository at this point in the history
  • Loading branch information
oureveryday committed Dec 14, 2024
1 parent bc8b42e commit 96b14f1
Show file tree
Hide file tree
Showing 111 changed files with 45,678 additions and 4,078 deletions.
47 changes: 28 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,43 +8,52 @@ Bypasses Steam API dll integrity/size check by hooking CreateFile API.

## Usage

* If you are using x32 version please remove `x32` from dll name.

### Method 1

* Use CFF Explorer and add `SteamAPICheckBypass` dll import to game main exe, then put the `SteamAPICheckBypass(x32).dll` dll beside game exe.

### Method 2 (VersionShim) (x64 for pre-built version.dll)

* Put `SteamAPICheckBypass.dll` `version.dll` `libraries.txt` beside game exe.
* Put `SteamAPICheckBypass.dll` `version.dll` beside game exe.

## Configuration (Optional)

* Create `SteamAPICheckBypass.ini` and write file names you want to replace. Example:

```text
[Replace]
OriginalFileFile=ReplaceFileName
steam_api64.dll=steam_api64.dll.bak
steam_api.dll=steam_api.dll.bak
[AfterFirstTime]
OriginalFileFile=0
steam_api.dll=0
* Create `SteamAPICheckBypass.json` and write file names you want to replace. Example:

```json
{
"steam_api64.dll":
{
"mode": "file_redirect",
"to": "steam_api64.dll.bak",
"hook_times_mode": "nth_time_only",
"hook_time_n": 1
},
"game.exe":
{
"mode": "file_redirect",
"to": "game.exe.bak"
}
}

```

* `Replace`: The file name to replace.
* `AfterFirstTime`: Start to replace after the first read of the file.
* `mode`: `file_redirect` or `file_hide`.
* `to` : The target file relative path.
* `hook_times_mode`: `all`, `nth_time_only` or `not_nth_time_only`.
* `hook_time_n`: The nth time to hook / not hook. (Start from 1)
* hook time option is useful for game dynamically loads steam_api dll after/before check.

## Internal Process

1. The Crack will check `useinternallist` in the source code, if it's true, it will use `internalreplaceList`.

2. The Crack will try to parse the ini file and add them into the replace list.

3. If ini file not exist, try find `steam_api(64).dll.bak`, `steam_api(64).org`,`steam_api(64)_o.dll` and add the existed file into replace list.
* Please refer to [nt_file_dupe Readme](nt_file_dupe/README.md) for more information.

## Dependencies

* <https://github.com/Xpl0itR/VersionShim>
* <https://github.com/otavepto/nt-fs-dupe>

## Bugs

Expand Down
Binary file modified Release_dlls/SteamAPICheckBypass.dll
Binary file not shown.
Binary file modified Release_dlls/SteamAPICheckBypass_x32.dll
Binary file not shown.
1 change: 0 additions & 1 deletion Release_dlls/libraries.txt

This file was deleted.

Binary file modified Release_dlls/version.dll
Binary file not shown.
7 changes: 0 additions & 7 deletions SteamAPICheckBypass.EXAMPLE.ini

This file was deleted.

15 changes: 15 additions & 0 deletions SteamAPICheckBypass.EXAMPLE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"steam_api64.dll":
{
"mode": "file_redirect",
"to": "steam_api64.dll.bak",
"hook_times_mode": "nth_time_only",
"hook_time_n": 1
},
"game.exe":
{
"mode": "file_redirect",
"to": "game.exe.bak"
}
}

44 changes: 28 additions & 16 deletions SteamAPICheckBypass.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34202.233
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SteamAPICheckBypass", "SteamAPICheckBypass\SteamAPICheckBypass.vcxproj", "{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nt_file_dupe", "nt_file_dupe\nt_file_dupe.vcxproj", "{22E4EBEB-B621-4252-AE46-665835385D64}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SteamAPICheckBypass_x32", "SteamAPICheckBypass_x32\SteamAPICheckBypass_x32.vcxproj", "{8A0F57D1-0E26-435B-9CFA-084D4424DD87}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_interface", "SteamAPICheckBypass\dll_interface.vcxproj", "{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VersionShim", "VersionShim\VersionShim.vcxproj", "{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -15,20 +17,30 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Debug|x64.ActiveCfg = Debug|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Debug|x64.Build.0 = Debug|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Debug|x86.ActiveCfg = Debug|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Release|x64.ActiveCfg = Release|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Release|x64.Build.0 = Release|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Release|x86.ActiveCfg = Release|x64
{3D2E6283-1C6E-43EF-A72D-FD510D40ECF4}.Release|x86.Build.0 = Release|x64
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Debug|x64.ActiveCfg = Debug|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Debug|x86.ActiveCfg = Debug|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Debug|x86.Build.0 = Debug|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Release|x64.ActiveCfg = Release|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Release|x64.Build.0 = Release|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Release|x86.ActiveCfg = Release|Win32
{8A0F57D1-0E26-435B-9CFA-084D4424DD87}.Release|x86.Build.0 = Release|Win32
{22E4EBEB-B621-4252-AE46-665835385D64}.Debug|x64.ActiveCfg = Debug|x64
{22E4EBEB-B621-4252-AE46-665835385D64}.Debug|x64.Build.0 = Debug|x64
{22E4EBEB-B621-4252-AE46-665835385D64}.Debug|x86.ActiveCfg = Debug|Win32
{22E4EBEB-B621-4252-AE46-665835385D64}.Debug|x86.Build.0 = Debug|Win32
{22E4EBEB-B621-4252-AE46-665835385D64}.Release|x64.ActiveCfg = Release|x64
{22E4EBEB-B621-4252-AE46-665835385D64}.Release|x64.Build.0 = Release|x64
{22E4EBEB-B621-4252-AE46-665835385D64}.Release|x86.ActiveCfg = Release|Win32
{22E4EBEB-B621-4252-AE46-665835385D64}.Release|x86.Build.0 = Release|Win32
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Debug|x64.ActiveCfg = Debug|x64
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Debug|x64.Build.0 = Debug|x64
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Debug|x86.ActiveCfg = Debug|Win32
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Debug|x86.Build.0 = Debug|Win32
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Release|x64.ActiveCfg = Release|x64
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Release|x64.Build.0 = Release|x64
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Release|x86.ActiveCfg = Release|Win32
{02A9F0E8-F3C9-407E-A7DC-CDC42430E626}.Release|x86.Build.0 = Release|Win32
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Debug|x64.ActiveCfg = Debug|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Debug|x64.Build.0 = Debug|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Debug|x86.ActiveCfg = Debug|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Debug|x86.Build.0 = Debug|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Release|x64.ActiveCfg = Release|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Release|x64.Build.0 = Release|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Release|x86.ActiveCfg = Release|x64
{7D2E1375-BF0B-49EF-BBA8-C134A347F1C7}.Release|x86.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
55 changes: 0 additions & 55 deletions SteamAPICheckBypass/Console.cpp

This file was deleted.

14 changes: 0 additions & 14 deletions SteamAPICheckBypass/Console.h

This file was deleted.

99 changes: 0 additions & 99 deletions SteamAPICheckBypass/SteamAPICheckBypass.vcxproj

This file was deleted.

42 changes: 0 additions & 42 deletions SteamAPICheckBypass/SteamAPICheckBypass.vcxproj.filters

This file was deleted.

Loading

0 comments on commit 96b14f1

Please sign in to comment.