mirror of
https://github.com/diamante0018/MW3ServerFreezer.git
synced 2025-04-19 19:52:53 +00:00
remove premake5.exe
This commit is contained in:
parent
f58acde370
commit
6fd01fa87c
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@ -13,6 +13,9 @@ concurrency:
|
|||||||
group: ${{ github.ref }}
|
group: ${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
PREMAKE_VERSION: "5.0.0-beta2"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build binaries
|
name: Build binaries
|
||||||
@ -20,8 +23,8 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
configuration:
|
configuration:
|
||||||
- Debug
|
- debug
|
||||||
- Release
|
- release
|
||||||
steps:
|
steps:
|
||||||
- name: Check out files
|
- name: Check out files
|
||||||
uses: actions/checkout@main
|
uses: actions/checkout@main
|
||||||
@ -34,8 +37,13 @@ jobs:
|
|||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
uses: microsoft/setup-msbuild@main
|
uses: microsoft/setup-msbuild@main
|
||||||
|
|
||||||
|
- name: Install Premake5
|
||||||
|
uses: diamante0018/setup-premake@master
|
||||||
|
with:
|
||||||
|
version: ${{ env.PREMAKE_VERSION }}
|
||||||
|
|
||||||
- name: Generate project files
|
- name: Generate project files
|
||||||
run: tools/premake5 vs2022
|
run: premake5 vs2022
|
||||||
|
|
||||||
- name: Set up problem matching
|
- name: Set up problem matching
|
||||||
uses: ammaraskar/msvc-problem-matcher@master
|
uses: ammaraskar/msvc-problem-matcher@master
|
||||||
|
22
README.md
22
README.md
@ -13,7 +13,7 @@ This software has been created purely for the purposes of academic research. It
|
|||||||
This software is a proof of concept for a vulnerability that is patched. You can't harm anyone with it if you use it on Pluto (If you were to update the addresses for the 1.9 patch of the game).
|
This software is a proof of concept for a vulnerability that is patched. You can't harm anyone with it if you use it on Pluto (If you were to update the addresses for the 1.9 patch of the game).
|
||||||
You also can't use this vulnerability on Tekno as it was fixed in 2021 (2.0.6 version of their client).
|
You also can't use this vulnerability on Tekno as it was fixed in 2021 (2.0.6 version of their client).
|
||||||
If you think your server is vulnerable you should seek help in the appropriate discord server or forum of the client you use.
|
If you think your server is vulnerable you should seek help in the appropriate discord server or forum of the client you use.
|
||||||
The exploit is documented in [exploit.cpp](https://github.com/diamante0018/MW3ServerFreezer/blob/main/src/client/component/exploit.cpp)
|
The exploit is documented in [exploit.cpp](src/client/component/exploit.cpp)
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ The patch made by Discord user "Zero Bytes" made the Netchan_Process stub return
|
|||||||
The return value is completely non-sensical and allows for the execution of SV_PacketEvent to continue.
|
The return value is completely non-sensical and allows for the execution of SV_PacketEvent to continue.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
int __cdecl Netchan_Process_stub(netchan_t* a1, msg_t* a2)
|
int __cdecl Netchan_Process_Stub(netchan_t* a1, msg_t* a2)
|
||||||
{
|
{
|
||||||
if ( a2->cursize <= 14 || !a2->data[14] )
|
if ( a2->cursize <= 14 || !a2->data[14] )
|
||||||
return Netchan_Process_Original(a1, a2);
|
return Netchan_Process_Original(a1, a2);
|
||||||
@ -37,9 +37,10 @@ int __cdecl Netchan_Process_stub(netchan_t* a1, msg_t* a2)
|
|||||||
```
|
```
|
||||||
|
|
||||||
Later revisions of the Tekno gods server DLL seem to have changed this behaviour and now the stub returns `0` when a suspicious packet is detected.
|
Later revisions of the Tekno gods server DLL seem to have changed this behaviour and now the stub returns `0` when a suspicious packet is detected.
|
||||||
|
The exploit was finally fixed.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
int __cdecl Netchan_Process_stub(netchan_t* a1, msg_t* a2)
|
int __cdecl Netchan_Process_Stub(netchan_t* a1, msg_t* a2)
|
||||||
{
|
{
|
||||||
if ( a2->cursize <= 14 || !a2->data[14] )
|
if ( a2->cursize <= 14 || !a2->data[14] )
|
||||||
return Netchan_Process_Original(a1, a2);
|
return Netchan_Process_Original(a1, a2);
|
||||||
@ -54,9 +55,14 @@ int __cdecl Netchan_Process_stub(netchan_t* a1, msg_t* a2)
|
|||||||
|
|
||||||
## Compile from source
|
## Compile from source
|
||||||
|
|
||||||
- Clone the Git repo. Do NOT download it as ZIP, that won't work.
|
- Install [Visual Studio 2022][vs-link] and enable `Desktop development with C++`
|
||||||
- Update the submodules and run `premake5 vs2022` or simply use the delivered `generate.bat`.
|
- Install [Premake5][premake5-link] and add it to your system PATH
|
||||||
- Build via solution file in `build\mw3-server-freezer.sln`.
|
- Clone this repository using [Git][git-link]
|
||||||
|
- Update the submodules using ``git submodule update --init --recursive``
|
||||||
|
- Run Premake with the option ``premake5 vs2022`` (Visual Studio 2022). No other build systems are supported.
|
||||||
|
- Build the project via the solution file in `build\mw3-server-freezer.sln`.
|
||||||
|
|
||||||
|
Only the Win32 platform is supported. Do not attempt to build for Windows ARM 64 or x64.
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
@ -68,3 +74,7 @@ List of hard-coded key binds:
|
|||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
- QUADFOST posted the original exploit on a popular gaming forum. I wrote this software implementing the exploit.
|
- QUADFOST posted the original exploit on a popular gaming forum. I wrote this software implementing the exploit.
|
||||||
|
|
||||||
|
[vs-link]: https://visualstudio.microsoft.com/vs
|
||||||
|
[premake5-link]: https://premake.github.io/download
|
||||||
|
[git-link]: https://git-scm.com
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
@echo off
|
|
||||||
echo Updating submodules...
|
|
||||||
call git submodule update --init --recursive
|
|
||||||
call tools\premake5 %* vs2022
|
|
10
premake5.lua
10
premake5.lua
@ -36,7 +36,7 @@ location "./build"
|
|||||||
objdir "%{wks.location}/obj"
|
objdir "%{wks.location}/obj"
|
||||||
targetdir "%{wks.location}/bin/%{cfg.platform}/%{cfg.buildcfg}"
|
targetdir "%{wks.location}/bin/%{cfg.platform}/%{cfg.buildcfg}"
|
||||||
|
|
||||||
configurations {"Debug", "Release"}
|
configurations {"debug", "release"}
|
||||||
|
|
||||||
language "C++"
|
language "C++"
|
||||||
cppdialect "C++20"
|
cppdialect "C++20"
|
||||||
@ -57,15 +57,15 @@ filter "platforms:Win*"
|
|||||||
defines {"_WINDOWS", "WIN32"}
|
defines {"_WINDOWS", "WIN32"}
|
||||||
filter {}
|
filter {}
|
||||||
|
|
||||||
filter "configurations:Release"
|
filter "configurations:release"
|
||||||
optimize "Size"
|
optimize "Size"
|
||||||
defines {"NDEBUG"}
|
defines {"NDEBUG"}
|
||||||
flags {"FatalCompileWarnings"}
|
flags {"FatalCompileWarnings"}
|
||||||
buildoptions {"/GL"}
|
buildoptions {"/GL"}
|
||||||
linkoptions { "/IGNORE:4702", "/LTCG" }
|
linkoptions {"/IGNORE:4702", "/LTCG"}
|
||||||
filter {}
|
filter {}
|
||||||
|
|
||||||
filter "configurations:Debug"
|
filter "configurations:debug"
|
||||||
optimize "Debug"
|
optimize "Debug"
|
||||||
defines {"DEBUG", "_DEBUG"}
|
defines {"DEBUG", "_DEBUG"}
|
||||||
filter {}
|
filter {}
|
||||||
@ -91,7 +91,7 @@ targetname "mw3-server-freezer"
|
|||||||
pchheader "std_include.hpp"
|
pchheader "std_include.hpp"
|
||||||
pchsource "src/client/std_include.cpp"
|
pchsource "src/client/std_include.cpp"
|
||||||
|
|
||||||
linkoptions {"/IGNORE:4254", "/PDBCompress"}
|
linkoptions {"/PDBCompress"}
|
||||||
|
|
||||||
files {"./src/client/**.hpp", "./src/client/**.cpp"}
|
files {"./src/client/**.hpp", "./src/client/**.cpp"}
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user