Rust gamehacking experiment for Counter-Strike: Source on Windows
- Bunnyhop
- Menu
- Ejection - Clean teardown, restores original game code
- Code injection
- Signature scanning
- Hooking
-
Submodules this repo contains submodules. Initialize them with
~$ git submodule init ~$ git submodule update --recursive
-
Keystone: Assembly engine
- the project depends on (and ships) the keystone assembler engine
- this entails building the keystone library from source, which needs an installed CMake and C/C++ compiler (e.g. Visual Studio)
- problem: the build tries to create a symlink from inside
lib/keystone/bindings/rust/keystone-sys
to the keystone root - under windows this is a priviledged action and is part of the build process
- it has do be done once, and be done with elevated rights
- I recommend doing a cargo check from an elevated terminal once, which builds all dependencies without the project itself, creating said symlink correctly
(from an elevated terminal) ~$ cargo check
-
Cross-compilation targets Counter-Strike: Source is a 32 bit game, so cross compilation is needed
~$ rustup target add i686-pc-windows-msvc
-
Build library
~$ cargo build
- do prerequisites
- start the game
- start game, create a local server (unsecured), join a team
- inject library
- inject with an injector like WINJECT 1.7, the library is found at
target/i686-pc-windows-msvc/debug/mince.dll
- inject with an injector like WINJECT 1.7, the library is found at