Skip to content

Commit

Permalink
📦 release!
Browse files Browse the repository at this point in the history
  • Loading branch information
seksea committed Oct 23, 2022
0 parents commit 2c902a5
Show file tree
Hide file tree
Showing 123 changed files with 60,888 additions and 0 deletions.
33 changes: 33 additions & 0 deletions CMakeLists.txt
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)
13 changes: 13 additions & 0 deletions CONTRIBUTORS
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
7 changes: 7 additions & 0 deletions LICENSE
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.
119 changes: 119 additions & 0 deletions README.md
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 added gdb
Binary file not shown.
Binary file added res/chams.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added res/console.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added res/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added res/menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
93 changes: 93 additions & 0 deletions src/core/features/antiaim.cpp
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;
}
}
}
}
}
}
}
}
}
10 changes: 10 additions & 0 deletions src/core/features/autoaccept.cpp
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("");
}
}
12 changes: 12 additions & 0 deletions src/core/features/autodefuse.cpp
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;
}
86 changes: 86 additions & 0 deletions src/core/features/backtrack.cpp
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;
}
}
2 changes: 2 additions & 0 deletions src/core/features/beemovie.hpp

Large diffs are not rendered by default.

Loading

0 comments on commit 2c902a5

Please sign in to comment.