updated version of: https://github.com/alphauc/sdk with some improvements, eg. undetected hooking library
- alpha
- harcuz
- wando
simple csgo internal base.
License: MIT License
updated version of: https://github.com/alphauc/sdk with some improvements, eg. undetected hooking library
When I inject it using manual mapping it crashes after 1 second.
Dll crashes game when injected... where are the offsets? They need to be updated.
injector: xenos
error: 0xC0000135
metods: native, manual map
not sure if this is a cheat bug, but after the update I can't inject without insecure.
If you add more than one slider, and drag the slider it also drags the others, same with checkboxes, if you add more than one and enable it, it enabled the others.
globals = **reinterpret_cast< c_global_vars_base *** >( ( *reinterpret_cast< uintptr_t ** >( client )[ 11 ] + 10 ) );
this line seems crashing, is indexes was updated?
the new update to the createmove hook causes stuttering because setviewangles never gets called
when returning false so in engine prediction you should set your localviewangles (index 13) to the cmd viewangles to fix it
//inside createmove after command nr check
if (create_move_original(input_sample_frametime, cmd)))
interfaces::prediction->set_local_view_angles(cmd->viewangles)
so i wanted to add writeusercmdtodeltabuffer to my source and i did it, but whenever i call write_user_original(ecx, slot, buf, from, to, isnewcommand);
it crashes.
i tried checking all of those basic stuff if localplayer is alive and more, but still crashing. i debugged also and it crashes on here
https://i.postimg.cc/6pDrJsLt/screenshot-1162.png
i have done the same code in other sources just to test, and works perfectly fine. i dont know but i think it might be the base issue.
Also with other hooks like drawmodelexecute its the exact same way, only what i got in my source that doesnt crashes its framestage.
hooks.cpp line 72
cmd->upmove = std::clamp(cmd->sidemove, -320.0f, 320.0f);
to
cmd->upmove = std::clamp(cmd->upmove, -320.0f, 320.0f);
maybe I'm just super dumb but I didn't found things like m_flPoseParameter in the sdk
Hello, i noticed when csgo is in windowed mode menu dont work i cant select checkbox/slider etc.
namespace backtrack {
struct stored_records {
vec3_t head;
float simtime;
matrix_t matrix[ 128 ];
};
struct convars {
convar *update_rate;
convar *max_update_rate;
convar *interp;
convar *interp_ratio;
convar *min_interp_ratio;
convar *max_interp_ratio;
convar *max_unlag;
};
void update();
void run( c_usercmd *cmd );
float get_lerp_time();
int time_to_ticks( float time );
bool valid_tick( float simtime );
static void init() {
std::deque<stored_records> records[ 65 ];
convars cvars;
records->clear();
cvars.update_rate = ctx::console->get_convar( "cl_updaterate" );
cvars.max_update_rate = ctx::console->get_convar( "sv_maxupdaterate" );
cvars.interp = ctx::console->get_convar( "cl_interp" );
cvars.interp_ratio = ctx::console->get_convar( "cl_interp_ratio" );
cvars.min_interp_ratio = ctx::console->get_convar( "sv_client_min_interp_ratio" );
cvars.max_interp_ratio = ctx::console->get_convar( "sv_client_max_interp_ratio" );
cvars.max_unlag = ctx::console->get_convar( "sv_maxunlag" );
}
};
in hooks.cpp:
void __stdcall hooks::frame::hook( int frame_stage ) {
static bool backtrack_init = ( backtrack::init(), false );
if ( frame_stage == FRAME_NET_UPDATE_END && ctx::engine->in_game() )
backtrack::update();
orig_frame( ctx::client, frame_stage );
}
but its crashing, when i calling this:
float get_lerp_time() {
auto ratio = std::clamp( cvars.interp_ratio->get_float(), cvars.min_interp_ratio->get_float(), cvars.max_interp_ratio->get_float() );
return max( cvars.interp->get_float(), ( ratio / ( ( cvars.max_update_rate ) ? cvars.max_update_rate->get_float() : cvars.update_rate->get_float() ) ) );
}
Hello, can anyone can help me with hook setupbones/doextrabonesprocessing? i hooked setupbones but it crash ;(
so this is probably easily solvable but for the life of me i cant figure it out these 2 issues
#include "../features.hpp"
i get an error on the "#" and it says "invalid macro definition: /std:c++latest"
i cant find where that is defined, help!
also, this part in the code:
//call it in createmove hook,after prediction.
legitbot::aimbot(cmd);
where is createmove hook? what does that mean? Im still a bit new. the "legitbot::aimbot(cmd);" is all red lined
thanks for the help!
i cant get latency, its always showing 0.00000etc
my get latency function:
int get_latency() { i_net_channel_info* net_channel = interfaces::engine->get_net_channel_info(); if(net_channel) return net_channel->get_average_latency(2) * 1000; }
my get_net_channel_info:
i_net_channel_info* get_net_channel_info() { using original_fn = i_net_channel_info *(__thiscall*)(iv_engine_client*); return (*(original_fn * *)this)[78](this); }
i_net_channel_info class:
`class i_net_channel_info {
public:
enum {
GENERIC = 0, // must be first and is default group
LOCALPLAYER, // bytes for local player entity update
OTHERPLAYERS, // bytes for other players update
ENTITIES, // all other entity bytes
SOUNDS, // game sounds
EVENTS, // event messages
USERMESSAGES, // user messages
ENTMESSAGES, // entity messages
VOICE, // voice data
STRINGTABLE, // a stringtable update
MOVE, // client move cmds
STRINGCMD, // string command
SIGNON, // various signondata
TOTAL, // must be last and is not a real group
};
virtual const char* get_name(void) const = 0; // get channel name
virtual const char* get_address(void) const = 0; // get channel IP address as string
virtual float get_time(void) const = 0; // current net time
virtual float get_time_connected(void) const = 0; // get connection time in seconds
virtual int get_buffer_size(void) const = 0; // netchannel packet history size
virtual int get_data_rate(void) const = 0; // send data rate in byte/sec
virtual bool is_loop_back(void) const = 0; // true if loopback channel
virtual bool is_timing_out(void) const = 0; // true if timing out
virtual bool is_play_back(void) const = 0; // true if demo playback
virtual float get_latency(int flow) const = 0; // current latency (RTT), more accurate but jittering
virtual float get_average_latency(int flow) const = 0; // average packet latency in seconds
virtual float get_average_loss(int flow) const = 0; // avg packet loss[0..1]
virtual float get_average_choke(int flow) const = 0; // avg packet choke[0..1]
virtual float get_average_data(int flow) const = 0; // data flow in bytes/sec
virtual float get_average_packets(int flow) const = 0; // avg packets/sec
virtual int get_total_data(int flow) const = 0; // total flow in/out in bytes
virtual int get_sequence_number(int flow) const = 0; // last send seq number
virtual bool is_valid_packet(int flow, int frame_number) const = 0; // true if packet was not lost/dropped/chocked/flushed
virtual float get_packet_time(int flow, int frame_number) const = 0; // time when packet was send
virtual int get_packet_bytes(int flow, int frame_number, int group) const = 0; // group size of this packet
virtual bool get_stream_progress(int flow, int* received, int* total) const = 0; // TCP progress if transmitting
virtual float get_since_last_time_recieved(void) const = 0; // get time since last recieved packet in seconds
virtual float get_command_interpolation_ammount(int flow, int frame_number) const = 0;
virtual void get_packet_response_latency(int flow, int frame_number, int* pnLatencyMsecs, int* pnChoke) const = 0;
virtual void get_remote_framerate(float* pflFrameTime, float* pflFrameTimeStdDeviation) const = 0;
virtual float get_timeout_seconds() const = 0;
};`
How to add a type text to framework menu?
I have made it so that it does a for loop to run the same code on every player. I have set that variable entity is a player_t. How could I make the player glow?
Sorry if this seems like a lack luster post but can anyone help me with fGui. I simply tried to move the checkbox over to Miscellaneous and its now only rendering the miscellaneous tab.
#include "fgui_menu.hpp"
void gui::initialize() {
fgui::element_font title_font = { "Tahoma", 11, fgui::external::font_flags::SHADOW , false };
REGISTER_NOTIFICATIONS(title_font);
ADD_WINDOW(vars::container["#window"], 50, 50, "csgo-cheat", 560, 450, fgui::external::key_code::KEY_INSERT, title_font);
REGISTER_CURSOR(fgui::cursor_type::ARROW, fgui::input_state::UNLOCKED);
REGISTER_TAB(vars::tabs["#tab_panel"], 7, 1, title_font, vars::container["#window"], -1);
ADD_TAB(vars::tabs["#tab_panel"], "Aimbot"); {
}
ADD_TAB(vars::tabs["#tab_panel"], "visuals"); {
}
ADD_TAB(vars::tabs["#tab_panel"], "Misc"); {
ADD_GROUPBOX(vars::container["#groupbox"], 15, 40, "Cool Box NGL", 260, 370, title_font, vars::container["#window"], 0, false, false, false);
ADD_CONTROLLER(vars::container["#groupbox"], vars::tabs["#tab_panel"]);
ADD_CHECKBOX(vars::checkbox["#checkbox"], 15, 15, "checkbox gang", "vars.checkbox", title_font, vars::container["#groupbox"], 0);
ADD_GROUPBOX(vars::container["#groupbox1"], 285, 40, "Cool Box NGL 2", 260, 370, title_font, vars::container["#window"], 0, false, false, false);
ADD_CONTROLLER(vars::container["#groupbox1"], vars::tabs["#tab_panel"]);
}
}
in hooks.cpp replace your createmove with
bool __stdcall hooks::create_move::hook(float input_sample_frametime, c_usercmd* cmd) {
create_move_original(input_sample_frametime, cmd);
if (!cmd || !cmd->command_number)
return create_move_original(input_sample_frametime, cmd);
csgo::local_player = static_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));
uintptr_t* frame_pointer;
__asm mov frame_pointer, ebp;
bool& send_packet = *reinterpret_cast<bool*>(*frame_pointer - 0x1C);
misc::movement::bunny_hop(cmd);
prediction::start(cmd); {
} prediction::end();
auto old_viewangles = cmd->viewangles;
auto old_forwardmove = cmd->forwardmove;
auto old_sidemove = cmd->sidemove;
math::correct_movement(old_viewangles, cmd, old_forwardmove, old_sidemove);
cmd->forwardmove = std::clamp(cmd->forwardmove, -450.0f, 450.0f);
cmd->sidemove = std::clamp(cmd->sidemove, -450.0f, 450.0f);
cmd->upmove = std::clamp(cmd->upmove, -320.0f, 320.0f);
cmd->viewangles.normalize();
cmd->viewangles.x = std::clamp(cmd->viewangles.x, -89.0f, 89.0f);
cmd->viewangles.y = std::clamp(cmd->viewangles.y, -180.0f, 180.0f);
cmd->viewangles.z = 0.0f;
return false;
}
// good yes
Since there are no user interface libraries for csgo's surface I would like to use imgui but I cant find any directx hooks because there are no directx hooks. So I would like know is it even possible to implement imgui to this base?
#include "../features.hpp"
//create aimbot.cpp
int aim_bone[] = { 8, 7 , 6 };
player_t* legitbot::GetBestTarget(c_usercmd* cmd)
{
float ofov = variables::aimbot_fov;
float nfov = 0;
player_t* player = nullptr;
for (int iPlayer = 0; iPlayer < interfaces::globals->max_clients; iPlayer++)
{
auto pCSPlayer = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(iPlayer));
if (!pCSPlayer)
continue;
if (pCSPlayer == csgo::local_player || pCSPlayer->team() == csgo::local_player->team())
continue;
if (pCSPlayer->dormant())
continue;
if (!(pCSPlayer->is_alive() && pCSPlayer->health() > 0))
continue;
if (pCSPlayer->has_gun_game_immunity())
continue;
vec3_t eyepos = csgo::local_player->get_eye_pos();
vec3_t enemyheadpos = pCSPlayer->get_bone_position(8);
vec3_t angleTo = math::calculate_angle(eyepos, enemyheadpos);
angleTo.clamp();
nfov = cmd->viewangles.distance_to(angleTo);
if (nfov < ofov)
{
ofov = nfov;
player = pCSPlayer;
}
}
return player;
}
void legitbot::simple_rcs(c_usercmd* cmd, vec3_t& angles)
{
static vec3_t old_punch{ 0, 0, 0 };
auto scale = interfaces::console->get_convar("weapon_recoil_scale");
auto punch = csgo::local_player->aim_punch_angle() * 2;
punch.x *= variables::rcs_x;
punch.y *= variables::rcs_y;
auto rcs_angle = cmd->viewangles += (old_punch - punch);
interfaces::engine->set_view_angles(rcs_angle);
old_punch = punch;
}
void legitbot::aimbot(c_usercmd* cmd)
{
if (!variables::aimbot)
return;
if (!interfaces::engine->is_connected() || !interfaces::engine->is_in_game())
return;
if (!csgo::local_player)
return;
if (!csgo::local_player->is_alive())
return;
const auto weapon_type = csgo::local_player->active_weapon()->get_weapon_data()->weapon_type;
if (weapon_type == WEAPONTYPE_GRENADE || weapon_type == WEAPONTYPE_C4 || weapon_type == WEAPONTYPE_KNIFE)
return;
if (variables::simple_rcs)
{
simple_rcs(cmd, cmd->viewangles);
}
player_t* target = GetBestTarget(cmd);
auto weapon = csgo::local_player->active_weapon();
if(GetAsyncKeyState(VK_LBUTTON))
{
if (target)
{
// int bone = 0;
// bone = aim_bone[variables::bone];
vec3_t eyepos = csgo::local_player->get_eye_pos();
vec3_t targethead = target->get_bone_position(8);
// vec3_t targetbone = target->get_bone_position(bone);
vec3_t viewangles = math::calculate_angle(eyepos, targethead);
viewangles.clamp();
vec3_t delta = cmd->viewangles - viewangles;
delta.clamp();
vec3_t finalAng = cmd->viewangles - delta / (variables::aimbot_smoothing * 20);
finalAng.clamp();
if (variables::aimbot_isvisiblecheck && csgo::local_player->can_see_player_pos(target, target->get_eye_pos()))
{
cmd->viewangles = finalAng;
interfaces::engine->set_view_angles(cmd->viewangles);
}
else if (!variables::aimbot_isvisiblecheck)
{
cmd->viewangles = finalAng;
interfaces::engine->set_view_angles(cmd->viewangles);
}
}
}
}
``
``
//make aimbot header or paste in features.hpp
namespace legitbot
{
player_t* GetBestTarget(c_usercmd* cmd);
void aimbot(c_usercmd* cmd);
void simple_rcs(c_usercmd* cmd, vec3_t& angles);
inline int hitbox_id;
}
``
//call it in createmove hook,after prediction.
legitbot::aimbot(cmd);
``
When will the rest of menu controls be added?
in minhook/hde files that end in 64 are useless since csgo is 32 bit. just saying
So in this base, there are no set local view angles(in prediction). So I went to UC and found the netvar dead flag and 4 past it, you can set local view angles. So I do this in FRAME_RENDER_START, and It still doesn't work. I think this is a base issue. Because in alphas SDK you can use deadflag+4 fine https://github.com/alphauc/sdk and an example of this being done is from polandhack https://github.com/alphauc/polandhack/blob/master/src/cheat/hooks/client_dll/frame_stage_notify.cc here is my code for FRAME_RENDER_START
if (frame_stage == FRAME_RENDER_START) { if (csgo::local_player && csgo::local_player->is_alive()) { if (vars::checkbox["#enableThirdperson"]->get_bool()) { interfaces::input->m_fCameraInThirdPerson = true; *(vec3_t*)((uintptr_t)csgo::local_player + 0x31C8) = vec3_t(real.x, real.y, 0); }
I can not for the life of me get this to work I got help but still to no avail. Is it impossible to make combo boxes with this base?? Does anyone know how to?
template<typename FuncType>
__forceinline static FuncType call_virtual(void* ppClass, int index) {
int* pVTable = *(int**)ppClass;
int dwAddress = pVTable[index];
return (FuncType)(dwAddress);
}
why not to use this code everywhere to simplify things like shown below?
void set_drawing_color(int r, int g, int b, int a = 255)
{
utilities::call_virtual<void(__thiscall*)(decltype(this), int, int, int, int) >(this, 15)(this, r, g, b, a);
}
void set_text_color(int r, int g, int b, int a = 255)
{
utilities::call_virtual<void(__thiscall*)(decltype(this), int, int, int, int) >(this, 25)(this, r, g, b, a);
}
void draw_polygon(int n, vertex_t* vertice, bool clip_vertices = true)
{
utilities::call_virtual<void(__thiscall*)(decltype(this), int, vertex_t*, bool) >(this, 106)(this, n, vertice, clip_vertices);
}
instead of
void set_drawing_color(int r, int g, int b, int a = 255) {
using original_fn = void(__thiscall*)(i_surface*, int, int, int, int);
return (*(original_fn * *)this)[15](this, r, g, b, a);
}
void set_text_color(int r, int g, int b, int a = 255) {
using original_fn = void(__thiscall*)(i_surface*, int, int, int, int);
return (*(original_fn * *)this)[25](this, r, g, b, a);
}
void draw_polygon(int n, vertex_t* vertice, bool clip_vertices = true) {
using original_fn = void(__thiscall*)(i_surface*, int, vertex_t*, bool);
return (*(original_fn * *)this)[106](this, n, vertice, clip_vertices);
}
Not sure why this was closed when brought up originally- there appears to be an issue with the user cmd mousedx. This issue is causing mousedx and sidemove to not work appropriately. This should be fixed.
hey, this seems like an odd question, but I really have a hard time getting the deadflag netvar.
What I already tried:
1) NETVAR("DT_CSPlayer", "deadlag", deadflag, int);
2) auto dwFlag = netvar_manager::get_net_var(fnv::hash("CBasePlayer"), fnv::hash("deadflag"));
What is the problem?
(I know it's wrong because I am getting a nullpointer, for example with:
*reinterpret_cast<vec3_t*>(reinterpret_cast<DWORD>(csgo::local_player) + dwFlag + 4)
)
hey, i was wondering what menu was hooked with the sdk. was it zgui or fgui? Also is there even a combobox added into this sdk or will I have to create my own combobox.
i noticed that the slider max_value works perfectly but the min value is always 0 same changing it
so today i tried making a thing where i click somewhere and it renders a filled rect, but its pretty buggy and doesnt work.
when i click on that position, i need to keep holding on the click in order so the rect gets rendered and if i get the cursor out of that position the filled rect doesnt gets rendered anymore
this is the code
if ((cursor.x > position) && (cursor.x < position + w) && (cursor.y > y) && (cursor.y < y + h) && GetAsyncKeyState(VK_LBUTTON)) open = !open;
this its literally the same code as other menu functions uses like checkbox or the slider.
then i just check
if (open) { *my stuff* }
and it works but i need to hold my click on the position so the filled rect renders? i've been trying to figure this out for like 4 hours.
When loading into a map, just as it's about to finish loading, the game crashes.
The issue only occurs when compiled in debug mode.
I'm injecting using manual mapping with xenos, with the ignore TLS option selected as without that option selected it doesn't inject.
Attaching debugger spits out this:
Exception thrown at 0x43496694 in csgo.exe: 0xC0000005: Access violation reading location 0x00000004.
so i wanted to make a fire game event and all those things to make a killsay on player death, so i did.
but when im almost finished, when i did in i_game_event_listener2 the Init function needed to add the listener on hook initialize,
when i add the listener like this: interfaces::event_manager->add_listener(this, "player_death", false);
and i try to build, it gives me 2 errors that say:
interfaces is not a class or a namespace
, and event_manager undeclared identifier
i tried to include interfaces.hpp, but that doesnt fixes it.
Here is a screenshot if you still dont get me: https://i.postimg.cc/FzTjcvgH/screenshot-1115.png
Any help? @designer1337
So I looked at this tutorial and for the life of me I cant find what interface would work. I tried engine and it gives a esp error
https://www.unknowncheats.me/forum/counterstrike-global-offensive/330483-disable-model-occulusion.html
my code for intitializing the hook
reinterpret_cast<void*>(get_virtual(interfaces::engine, 6));
i am trying to hook sv_cheats like this
// .hpp file
namespace sv_cheats {
using fn = bool( __thiscall* )( convar* );
static bool __fastcall hook( ) noexcept;
}
// .cpp file
hooks::sv_cheats::fn sv_cheats_original = nullptr;
auto sv_cheats_target = reinterpret_cast< void* >( get_virtual( interfaces::console->get_convar( "sv_cheats" ), 13 ) );
if ( MH_CreateHook( sv_cheats_target, &sv_cheats::hook, reinterpret_cast< void** >( &sv_cheats_original ) ) != MH_OK ) {
throw std::runtime_error( "failed to initialize sv_cheats. (outdated index?)" );
return false;
}
static bool __fastcall hooks::sv_cheats::hook( ) noexcept {
if ( interfaces::engine->is_in_game( ) && config_system.esp.thirdperson ) {
static auto think = utilities::pattern_scan( GetModuleHandleA( "client_panorama.dll" ), "85 C0 75 30 38 86" );
static auto original_fn = sv_cheats_original( interfaces::console->get_convar( "sv_cheats" ) );
if ( !original_fn )
return false;
if ( reinterpret_cast< DWORD >( _ReturnAddress( ) ) == reinterpret_cast< DWORD >( think ) )
return true;
return original_fn;
}
}
Add example with button at menu and text type,
text type for example to use custom clan tag, to say what clan you want
hey, does this crash only occurs for me? When I compiled the base in debug and pressing END the game crashes - doesn't happen in release build. So probably something with the console?
Debug log is : "A LIST_ENTRY has been corrupted (i.e. double remove)."
If you add more than one slider, and drag the slider it also drags the others, same with checkboxes, if you add more than one and enable it, it enables the others.
really love the base.. thx for sharing.. learned a loot again.. but can you tell me where to change the font and textsize of menu etc..
When I give it a index like this:
for (size_t i = 1; i < 64; i++) { interfaces::entity_list->get_client_entity(i); //How am I supposed to get something out of this? }
I cant get anything from that function.
would be cool if you could add a basic esp to the base like a simple box esp
hey, im trying to clip the viewport for groupbox sliders etc. everything works correctly until i try to move the menu. the clipped section always stays in the same spot regardless where i move my menu.
inside painttraverse:
interfaces::surface->enable_clip(true); g_gui.draw_menu(); interfaces::surface->enable_clip(false);
inside my gui.cpp:
//render a groupbox, handle scrolling etc interfaces::surface->set_clip_rect(x + dist, y, width, height + scrolly);
i've tried just rendering a clipped rectangle inside the menu and the same issue arises, renders itself in the top left corner with no regard to the menus position.
has anyone had any success in making a scrolling portion of the menu? (with engine rendering)
If you place the text as an example to a players head's location the text is visible on the players head where it is supposed be but when you rotate 180 degrees you can see the text just levitating.
You'd need the hook for "CheckFileCRCsWithServer"
https://www.unknowncheats.me/forum/counterstrike-global-offensive/392489-fixing-sv_pure-kicks.html
But i'm not too familiar with this source and the hooking looks weird, would be good if someone better would update it.
So im trying to make a triggerbot but I cant find anything related to shooting.
will you add color picker and hot keys?
When i try to build this thats the error i get
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.