-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2c902a5
Showing
123 changed files
with
60,888 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
cmake_minimum_required(VERSION 3.11.0) | ||
project(gamesneeze) | ||
|
||
|
||
set(CMAKE_CXX_STANDARD 20) | ||
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -O3 -march=core2 -mtune=native -fvisibility=hidden -flto -ggdb -DDEBUG") | ||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -std=c++2a -Wall -Wextra") | ||
|
||
string(TOLOWER $ENV{USE_CLANG} USE_CLANG) | ||
if(USE_CLANG STREQUAL "true") | ||
set(CMAKE_C_COMPILER "/usr/bin/clang") | ||
set(CMAKE_CXX_COMPILER "/usr/bin/clang++") | ||
|
||
set(CMAKE_C_FLAGS_RELEASE "-W -Wall -Wextra -O3 -march=native -mtune=native -fvisibility=hidden -flto -Wl,--strip-all") | ||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fno-rtti -std=c++2a -Wall -Wextra") | ||
else() | ||
set(CMAKE_C_COMPILER "/usr/bin/gcc") | ||
set(CMAKE_CXX_COMPILER "/usr/bin/g++") | ||
|
||
set(CMAKE_C_FLAGS_RELEASE "-W -Wall -Wextra -O3 -march=native -mtune=native -s -fvisibility=hidden -flto -fwhole-program -Wl,--strip-all") | ||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} --no-gnu-unique -fno-rtti -std=c++2a") | ||
endif() | ||
|
||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") | ||
|
||
file(GLOB_RECURSE SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp") | ||
list(APPEND SOURCES "${CMAKE_SOURCE_DIR}/src/core/menu/imgui/GL/gl3w.c") | ||
|
||
include_directories(/usr/local/include) | ||
link_directories(/usr/local/lib) | ||
|
||
add_library(gamesneeze SHARED ${SOURCES}) | ||
target_link_libraries(gamesneeze dl pthread SDL2 GL) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
This is a list of people who have contributed to the project. | ||
================================================================ | ||
seksea | ||
allbombson (Samson/EpicGamer2007) | ||
Crazily | ||
tango1337 | ||
dweee | ||
luk1337 | ||
cristeigabriel | ||
G-4-M-3-R | ||
keenan | ||
nigma1337 | ||
vampur |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Copyright <2020> <sekc (https://github.com/seksea)> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
<p align="center"> | ||
<img src="/res/logo.png" alt="gamesneeze-linux"> | ||
<a href="/LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="MIT License"></a> | ||
<a><img src="https://img.shields.io/badge/Platform-Linux-green.svg" alt="Linux"></a> | ||
<a><img src="https://img.shields.io/badge/Game-CS:GO-green.svg" alt="CS:GO"></a> | ||
<a><img src="https://img.shields.io/badge/State-Maintained-green.svg" alt="Maintained"></a> | ||
<a><img src="https://img.shields.io/badge/Detection-Undetected-green.svg" alt="Detection: Undetected"></a> | ||
<a href="https://gitter.im/gamesneeze/community?utm_source=share-link&utm_medium=link&utm_campaign=share-link"><img src="https://img.shields.io/badge/Chat-Gitter-green.svg" alt="Gitter"></a> | ||
<a href="https://discord.gg/SCHsWHFJMb"><img src="https://img.shields.io/badge/Chat-Discord-blue.svg" alt="Discord"></a> | ||
</p> | ||
|
||
An open source training utility for Counter-Strike: Global Offensive on Linux. | ||
|
||
## :warning: :warning: THIS IS FOR LINUX, IT WILL NOT INJECT IF YOU ARE ON WINDOWS, AND I'M NOT PLANNING ON PORTING ANYTIME SOON, DO NOT JOIN THE DISCORD ASKING FOR DLL :warning: :warning: | ||
|
||
## Donations | ||
|
||
Donations are accepted in BTC and Monero | ||
|
||
##### If sending more than 5 usd contact me on discord letting me know and I will add you to the credits as a donor along with the amount donated. | ||
|
||
``` | ||
BTC: | ||
bc1qwrqhhlam4rl7yh2a09ntgdduw3vg9er3ce8rjq | ||
Monero: | ||
86xJi2jQEocYZ7o6BTrbmTPJKLxbfHAdKdPcTgro3PAw6z3MCcYLq28Ehg4tzRUCPFKDQM1SKbp4RRygnk9FCBux3uxXCDN | ||
Buy me a Coffee: | ||
www.buymeacoffee.com/sekc | ||
``` | ||
|
||
### Donators | ||
- moke#9091/github.com/mokeWe - 0.19XMR (~$30) | ||
- hx#5185 - 0.2XMR (~$30) | ||
|
||
## Current Features | ||
|
||
### Features | ||
|
||
- Basic GDB injector | ||
- ImGui menu | ||
- Chams | ||
- ESP | ||
- Weapon ESP | ||
- Chicken/Fish ESP | ||
- World colour modulation | ||
- Force square radar | ||
- Recoil crosshair | ||
- Rank revealer | ||
- Radio fake ban/fake chat | ||
- Clantag (and pBeeMovie clantag) | ||
- Backtracking | ||
- Backtrack Chams | ||
- Flappy Bird clone | ||
- Legitbot | ||
- Hitmarkers | ||
- Nightmode | ||
- Skybox changer | ||
- Skinchanger | ||
- Ragebot (currently in development and doesn't have awall/bulletsim so no mindmg/hitchance/autoshoot) | ||
- AntiAim (currently sways, need to fix LBY breaker) | ||
- JumpBug | ||
- EdgeBug | ||
- Edge Jump | ||
|
||
|
||
## How to use | ||
|
||
### Debian / Ubuntu / Pop OS / Linux Mint required packages: | ||
|
||
```sudo apt install -y libsdl2-dev cmake git gcc-10 g++-10 gdb clang``` | ||
|
||
### Arch / Manjaro required packages: | ||
|
||
```sudo pacman -S --needed base-devel git cmake gdb sdl2 clang``` | ||
|
||
### Fedora required packages: | ||
|
||
```sudo dnf install gcc-g++ gdb SDL2-devel cmake git clang``` | ||
|
||
### OpenSUSE required packages: | ||
|
||
```sudo zypper install gcc gdb SDL2-devel cmake git llvm-clang llvm-gold``` | ||
|
||
```sh | ||
git clone https://github.com/seksea/gamesneeze | ||
cd gamesneeze | ||
chmod +x toolbox.sh | ||
./toolbox.sh -p -u -b -l # pull, unload trainer if currently injected, build and then load, use -h for help | ||
``` | ||
|
||
|
||
## Basic toolbox.sh usage | ||
|
||
| Argument | Description | | ||
| ------------------ | ----------------------------------------- | | ||
| -u (--unload) | Unload the trainer from CS:GO if loaded | | ||
| -l (--load) | Load/inject the trainer via gdb | | ||
| -ld (--load_debug) | Load/inject the trainer and debug via gdb | | ||
| -b (--build) | Build to the build/ dir | | ||
| -bd (--build_debug)| Build to the build/ dir as debug | | ||
| -p (--pull) | Update the trainer | | ||
| -h (--help) | Show help | | ||
|
||
All args are executed in the order they are written in, for example, "-u -b -l" would unload the cheat, build it, and then load it back into csgo. | ||
|
||
|
||
## Found a bug or want to contribute to the project? | ||
|
||
- [Create a pull request](https://github.com/seksea/gamesneeze/compare) ([tutorial](https://github.com/yangsu/pull-request-tutorial)) | ||
- [Report a bug](https://github.com/seksea/gamesneeze/issues/new) | ||
|
||
## [To-do](https://github.com/seksea/gamesneeze/projects/1) | ||
|
||
## Screenshots | ||
|
||
![Console Output](res/console.png) | ||
![Choms Output](res/chams.png) |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
#include "../../includes.hpp" | ||
#include "features.hpp" | ||
|
||
bool updatingLby() { | ||
// cred: Somewhere from UC, can't remember | ||
AnimState* animState = Globals::localPlayer->animState(); | ||
float curtime = Globals::localPlayer->tickbase() * Interfaces::globals->interval_per_tick; | ||
static float lbyTime; | ||
|
||
if (animState->verticalVelocity > 0.1f || fabs(animState->horizontalVelocity) > 100.0f) { | ||
lbyTime = curtime + 0.22f; | ||
return false; | ||
} | ||
else if (curtime > lbyTime) { | ||
lbyTime = curtime + 1.1f; | ||
return true; | ||
} | ||
return false; | ||
} | ||
|
||
void Features::AntiAim::createMove(CUserCmd* cmd) { | ||
if (Interfaces::engine->IsInGame()) { | ||
if (Globals::localPlayer) { | ||
if (Globals::localPlayer->health() > 0 && Globals::localPlayer->moveType() != 9) { // 9 is ladder movetype | ||
// TODO: Only turn off anti-aim for the throw time so it's more reliable. | ||
Weapon *weapon = (Weapon *) Interfaces::entityList->GetClientEntity((uintptr_t) Globals::localPlayer->activeWeapon() & 0xFFF); | ||
if(weapon) { | ||
if (!(weapon->itemIndex() == ItemIndex::WEAPON_DECOY || weapon->itemIndex() == ItemIndex::WEAPON_HEGRENADE || weapon->itemIndex() == ItemIndex::WEAPON_FLASHBANG || weapon->itemIndex() == ItemIndex::WEAPON_SMOKEGRENADE || weapon->itemIndex() == ItemIndex::WEAPON_MOLOTOV || weapon->itemIndex() == ItemIndex::WEAPON_INCGRENADE)) { | ||
if (!((cmd->buttons & (1 << 0)) || (cmd->buttons & (1 << 5)))) { | ||
if (CONFIGINT("Rage>AntiAim>Type")) { | ||
// TODO: for some reason it refuses to desync when looking forward???!?!? | ||
|
||
cmd->viewangles.x = CONFIGINT("Rage>AntiAim>Pitch"); | ||
|
||
int real = 0; | ||
int fake = 0; | ||
|
||
switch (CONFIGINT("Rage>AntiAim>Type")) { | ||
case 1: { // Static | ||
real = cmd->viewangles.y + CONFIGINT("Rage>AntiAim>Offset"); | ||
fake = CONFIGINT("Rage>AntiAim>Static>Desync"); | ||
break; | ||
} | ||
case 2: { // Jitter | ||
int jitterAmt = (((cmd->tick_count % CONFIGINT("Rage>AntiAim>Jitter>Jitter Delay")) < CONFIGINT("Rage>AntiAim>Jitter>Jitter Delay") / 2) ? 1 : -1) * (CONFIGINT("Rage>AntiAim>Jitter>Jitter Amount") - (CONFIGINT("Rage>AntiAim>Jitter>Jitter Amount")/2)); | ||
real = cmd->viewangles.y + CONFIGINT("Rage>AntiAim>Offset") + jitterAmt; | ||
fake = CONFIGINT("Rage>AntiAim>Jitter>Desync"); | ||
break; | ||
} | ||
case 3: { // Fake Jitter | ||
int jitterAmt = (((cmd->tick_count % CONFIGINT("Rage>AntiAim>Fake Jitter>Jitter Delay")) < CONFIGINT("Rage>AntiAim>Fake Jitter>Jitter Delay") / 2) ? 1 : -1) * (CONFIGINT("Rage>AntiAim>Fake Jitter>Jitter Amount") - (CONFIGINT("Rage>AntiAim>Fake Jitter>Jitter Amount")/2)); | ||
real = cmd->viewangles.y + CONFIGINT("Rage>AntiAim>Offset"); | ||
fake = jitterAmt; | ||
break; | ||
} | ||
case 4: { // Real Jitter | ||
int jitterAmt = (((cmd->tick_count % CONFIGINT("Rage>AntiAim>Real Jitter>Jitter Delay")) < CONFIGINT("Rage>AntiAim>Real Jitter>Jitter Delay") / 2) ? 1 : -1) * (CONFIGINT("Rage>AntiAim>Real Jitter>Jitter Amount") - (CONFIGINT("Rage>AntiAim>Real Jitter>Jitter Amount")/2)); | ||
real = cmd->viewangles.y + CONFIGINT("Rage>AntiAim>Offset") + jitterAmt; | ||
fake = CONFIGINT("Rage>AntiAim>Static>Desync") - jitterAmt; | ||
break; | ||
} | ||
case 5: { // Spin | ||
real = cmd->viewangles.y + (cmd->tick_count * CONFIGINT("Rage>AntiAim>Offset")); | ||
fake = CONFIGINT("Rage>AntiAim>Spin>Desync"); | ||
break; | ||
} | ||
} | ||
|
||
//TODO Check for net channel group 9 so we can desync and yell at nn's at the same time | ||
int fakelag = CONFIGINT("Rage>AntiAim>FakeLag"); | ||
if (Interfaces::engine->IsVoiceRecording()) { | ||
fakelag = 0; | ||
} else { | ||
fakelag = CONFIGINT("Rage>AntiAim>FakeLag"); | ||
} | ||
|
||
*Globals::sendPacket = cmd->tick_count % ((CONFIGBOOL("Rage>Enabled") && CONFIGINT("Rage>AntiAim>Type")) + fakelag + 1); | ||
|
||
if (updatingLby()) { | ||
cmd->viewangles.y = real + (fake * 2); | ||
*Globals::sendPacket = false; | ||
} else if (*Globals::sendPacket) { | ||
cmd->viewangles.y = real; | ||
fakeYaw = real; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#include "features.hpp" | ||
|
||
void Features::AutoAccept::emitSound(const char* pSoundEntry) { | ||
/* TODO: move to panorama event dispatching in future */ | ||
if (CONFIGBOOL("Misc>Misc>Misc>Auto Accept") && Offsets::setPlayerReady && strcmp(pSoundEntry, "UIPanorama.popup_accept_match_beep") == 0) { | ||
Features::Notifications::addNotification(ImColor(30, 255, 30), "[gs] Found game, Accepting..."); | ||
system("notify-send \"gamesneeze\" \"Found game!\""); //p | ||
Offsets::setPlayerReady(""); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#include "features.hpp" | ||
void Features::AutoDefuse::onBombRender(PlantedC4* bomb) { | ||
if (CONFIGBOOL("Misc>Misc>Misc>Auto Defuse") && getDistanceNoSqrt(Globals::localPlayer->origin(), bomb->origin()) < 5625) { // Could also check whether you're looking at the bomb but distance check should be good enough | ||
float timeRemaining = bomb->time() - (Interfaces::globals->curtime + ((float)playerResource->GetPing(Globals::localPlayer->index())/1000.f)); | ||
if (CONFIGBOOL("Misc>Misc>Misc>Latest Defuse") ? | ||
timeRemaining < (Globals::localPlayer->defuser() ? 5.1f: 10.1f) : true) { | ||
shouldDefuse = true; | ||
return; | ||
} | ||
} | ||
shouldDefuse = false; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#include "../../includes.hpp" | ||
#include "features.hpp" | ||
#include <cfloat> | ||
#include <cstring> | ||
|
||
void Features::Backtrack::store(CUserCmd *cmd) { | ||
if (CONFIGBOOL("Legit>Backtrack>Backtrack") && cmd->tick_count != 0 && Interfaces::engine->IsInGame() && Globals::localPlayer) { | ||
// Store | ||
BackTrackTick currentTick; | ||
for (int i = 1; i < Interfaces::globals->maxClients; i++) { | ||
Player* p = (Player*)Interfaces::entityList->GetClientEntity(i); | ||
if (p) { | ||
if (p->health() > 0 && !p->dormant() && p != Globals::localPlayer && p->isEnemy()) { | ||
BacktrackPlayer player; | ||
player.playerIndex = i; | ||
player.playerFlags = p->flags(); | ||
player.playerVelocity = p->velocity().Length2D(); | ||
if (p->getAnythingBones(player.boneMatrix)) { | ||
currentTick.players.insert(std::pair<int, BacktrackPlayer>(i, player)); | ||
} | ||
player.playerHeadPos = Vector(player.boneMatrix[8][0][3], player.boneMatrix[8][1][3], player.boneMatrix[8][2][3]); | ||
} | ||
else { | ||
if (currentTick.players.find(i) != currentTick.players.end()) { | ||
currentTick.players.erase(i); | ||
} | ||
} | ||
} | ||
} | ||
currentTick.tickCount = cmd->tick_count; | ||
backtrackTicks.insert(backtrackTicks.begin(), currentTick); | ||
|
||
// Delete ticks we cant backtrack | ||
while ((int)backtrackTicks.size() > CONFIGINT("Legit>Backtrack>Backtrack Ticks")) { | ||
backtrackTicks.pop_back(); | ||
} | ||
} | ||
} | ||
|
||
void Features::Backtrack::createMove(CUserCmd* cmd) { | ||
if (CONFIGBOOL("Legit>Backtrack>Backtrack") && cmd->tick_count != 0 && Interfaces::engine->IsInGame() && Globals::localPlayer) { | ||
// Find how far we should backtrack in this tick | ||
QAngle viewAngles; | ||
Interfaces::engine->GetViewAngles(viewAngles); | ||
viewAngles += Globals::localPlayer->aimPunch() * 2; | ||
|
||
float closestDelta = FLT_MAX; | ||
int closestTick = cmd->tick_count; | ||
|
||
if (cmd->buttons & (1 << 0)) { | ||
for (BackTrackTick tick : backtrackTicks) { | ||
for (auto player : tick.players) { | ||
Player* p = (Player*)Interfaces::entityList->GetClientEntity(player.second.playerIndex); | ||
if (p) { | ||
if (p->health() > 0 && !p->dormant()) { | ||
Vector localPlayerEyePos = Globals::localPlayer->eyePos(); | ||
|
||
Vector targetEyePos = Vector(player.second.boneMatrix[8][0][3], player.second.boneMatrix[8][1][3], player.second.boneMatrix[8][2][3]); // 8 is headbone in bonematrix | ||
|
||
QAngle angleToCurrentPlayer = calcAngle(localPlayerEyePos, targetEyePos); | ||
angleToCurrentPlayer -= viewAngles; | ||
if (angleToCurrentPlayer.y > 180.f) { | ||
angleToCurrentPlayer.y -= 360.f; | ||
} | ||
|
||
if (angleToCurrentPlayer.Length() < closestDelta) { | ||
closestDelta = angleToCurrentPlayer.Length(); | ||
closestTick = tick.tickCount; | ||
} | ||
} | ||
else { | ||
// If p is dormant or dead then erase player from the tick | ||
tick.players.erase(player.first); | ||
} | ||
} | ||
else { | ||
// If p doesnt exist then erase player from the tick | ||
tick.players.erase(player.first); | ||
} | ||
} | ||
} | ||
} | ||
lastBacktrack = cmd->tick_count - closestTick; // To show how much you backtracked in hitlogs | ||
cmd->tick_count = closestTick; | ||
} | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.