sv_pure bypass is now separated into module
This commit is contained in:
parent
21a889301e
commit
171a3815b8
@ -32,6 +32,7 @@ target_sources(cathook PRIVATE
|
|||||||
"${CMAKE_CURRENT_LIST_DIR}/MiscPlayerInfo.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/MiscPlayerInfo.cpp"
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/NavBot.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/NavBot.cpp"
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/Noisemaker.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/Noisemaker.cpp"
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/PureBypass.cpp"
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/Trigger.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/Trigger.cpp"
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/UberSpam.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/UberSpam.cpp"
|
||||||
"${CMAKE_CURRENT_LIST_DIR}/Walkbot.cpp"
|
"${CMAKE_CURRENT_LIST_DIR}/Walkbot.cpp"
|
||||||
|
37
src/hacks/PureBypass.cpp
Normal file
37
src/hacks/PureBypass.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include <settings/Bool.hpp>
|
||||||
|
#include "common.hpp"
|
||||||
|
|
||||||
|
static settings::Bool enabled{ "pure-bypass.enable", "false" };
|
||||||
|
static void *pure_orig, **pure_addr;
|
||||||
|
|
||||||
|
static void toggle(bool on)
|
||||||
|
{
|
||||||
|
if (on)
|
||||||
|
{
|
||||||
|
if (!pure_addr)
|
||||||
|
{
|
||||||
|
pure_addr = *reinterpret_cast<void ***>(gSignatures.GetEngineSignature("A1 ? ? ? ? 85 C0 74 ? C7 44 24 ? ? ? ? ? 89 04 24") + 1);
|
||||||
|
if (!pure_addr)
|
||||||
|
{
|
||||||
|
logging::InfoConsole("Pure bypass broken, failed to find signature");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (*pure_addr)
|
||||||
|
pure_orig = *pure_addr;
|
||||||
|
|
||||||
|
*pure_addr = nullptr;
|
||||||
|
}
|
||||||
|
else if (pure_orig)
|
||||||
|
{
|
||||||
|
*pure_addr = pure_orig;
|
||||||
|
pure_orig = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static InitRoutine init([] {
|
||||||
|
toggle(*enabled);
|
||||||
|
enabled.installChangeCallback([](settings::VariableBase<bool> &, bool on) {
|
||||||
|
toggle(on);
|
||||||
|
});
|
||||||
|
});
|
@ -8,7 +8,6 @@
|
|||||||
#include "HookedMethods.hpp"
|
#include "HookedMethods.hpp"
|
||||||
#include "CatBot.hpp"
|
#include "CatBot.hpp"
|
||||||
|
|
||||||
static settings::Bool pure_bypass{ "visual.sv-pure-bypass", "false" };
|
|
||||||
static settings::Int software_cursor_mode{ "visual.software-cursor-mode", "0" };
|
static settings::Int software_cursor_mode{ "visual.software-cursor-mode", "0" };
|
||||||
|
|
||||||
static settings::Int waittime{ "debug.join-wait-time", "2500" };
|
static settings::Int waittime{ "debug.join-wait-time", "2500" };
|
||||||
@ -25,11 +24,9 @@ CatCommand join_spam("join_spam", "Spam joins server for X seconds", [](const CC
|
|||||||
});
|
});
|
||||||
CatCommand join("mm_join", "Join mm Match", []() {
|
CatCommand join("mm_join", "Join mm Match", []() {
|
||||||
auto gc = re::CTFGCClientSystem::GTFGCClientSystem();
|
auto gc = re::CTFGCClientSystem::GTFGCClientSystem();
|
||||||
if (gc)
|
|
||||||
gc->JoinMMMatch();
|
gc->JoinMMMatch();
|
||||||
|
if (gc)
|
||||||
});
|
});
|
||||||
void *pure_orig = nullptr;
|
|
||||||
void **pure_addr = nullptr;
|
|
||||||
|
|
||||||
bool replaced = false;
|
bool replaced = false;
|
||||||
namespace hooked_methods
|
namespace hooked_methods
|
||||||
@ -90,21 +87,6 @@ DEFINE_HOOKED_METHOD(PaintTraverse, void, vgui::IPanel *this_, unsigned int pane
|
|||||||
no_report_limit.Patch();
|
no_report_limit.Patch();
|
||||||
replaced = true;
|
replaced = true;
|
||||||
}
|
}
|
||||||
if (pure_bypass)
|
|
||||||
{
|
|
||||||
if (!pure_addr)
|
|
||||||
{
|
|
||||||
pure_addr = *reinterpret_cast<void ***>(gSignatures.GetEngineSignature("A1 ? ? ? ? 85 C0 74 ? C7 44 24 ? ? ? ? ? 89 04 24") + 1);
|
|
||||||
}
|
|
||||||
if (*pure_addr)
|
|
||||||
pure_orig = *pure_addr;
|
|
||||||
*pure_addr = (void *) 0;
|
|
||||||
}
|
|
||||||
else if (pure_orig)
|
|
||||||
{
|
|
||||||
*pure_addr = pure_orig;
|
|
||||||
pure_orig = (void *) 0;
|
|
||||||
}
|
|
||||||
call_default = true;
|
call_default = true;
|
||||||
if (isHackActive() && (panel_scope || motd_panel || motd_panel_sd) && ((no_zoom && panel == panel_scope) || (hacks::shared::catbot::catbotmode && hacks::shared::catbot::anti_motd && (panel == motd_panel || panel == motd_panel_sd))))
|
if (isHackActive() && (panel_scope || motd_panel || motd_panel_sd) && ((no_zoom && panel == panel_scope) || (hacks::shared::catbot::catbotmode && hacks::shared::catbot::anti_motd && (panel == motd_panel || panel == motd_panel_sd))))
|
||||||
call_default = false;
|
call_default = false;
|
||||||
|
Reference in New Issue
Block a user