Merge pull request #256 from IMXNOOBX/typos-fix

Fix typos
This commit is contained in:
IMXNOOBX
2025-07-05 13:49:43 +02:00
committed by GitHub
3 changed files with 15 additions and 15 deletions
+2 -2
View File
@@ -71,7 +71,7 @@ void CGame::loop() {
std::lock_guard<std::mutex> lock(reader_mutex); std::lock_guard<std::mutex> lock(reader_mutex);
if (updater::offsets::dwLocalPlayerController == 0x0) if (updater::offsets::dwLocalPlayerController == 0x0)
throw std::runtime_error("Offsets have not been corretly set, cannot proceed."); throw std::runtime_error("Offsets have not been correctly set, cannot proceed.");
inGame = false; inGame = false;
isC4Planted = false; isC4Planted = false;
@@ -169,7 +169,7 @@ void CGame::loop() {
if (config::show_extra_flags) { if (config::show_extra_flags) {
/* /*
* Reading values for extra flags is now seperated from the other reads * Reading values for extra flags is now separated from the other reads
* This removes unnecessary memory reads, improving performance when not showing extra flags * This removes unnecessary memory reads, improving performance when not showing extra flags
*/ */
player.is_defusing = process->read<bool>(player.pCSPlayerPawn + updater::offsets::m_bIsDefusing); player.is_defusing = process->read<bool>(player.pCSPlayerPawn + updater::offsets::m_bIsDefusing);
+4 -4
View File
@@ -81,9 +81,9 @@ int main() {
std::cout << "[config] Reading configuration." << std::endl; std::cout << "[config] Reading configuration." << std::endl;
if (config::read()) if (config::read())
std::cout << "[updater] Sucessfully read configuration file\n" << std::endl; std::cout << "[updater] Successfully read configuration file\n" << std::endl;
else else
std::cout << "[updater] Error reading config file, reseting to the default state\n" << std::endl; std::cout << "[updater] Error reading config file, resetting to the default state\n" << std::endl;
#ifndef _UC #ifndef _UC
try { try {
@@ -96,9 +96,9 @@ int main() {
std::cout << "[updater] Reading offsets from file offsets.json." << std::endl; std::cout << "[updater] Reading offsets from file offsets.json." << std::endl;
if (updater::read()) if (updater::read())
std::cout << "[updater] Sucessfully read offsets file\n" << std::endl; std::cout << "[updater] Successfully read offsets file\n" << std::endl;
else else
std::cout << "[updater] Error reading offsets file, reseting to the default state\n" << std::endl; std::cout << "[updater] Error reading offsets file, resetting to the default state\n" << std::endl;
g_game.init(); g_game.init();
+9 -9
View File
@@ -15,7 +15,7 @@
If you follow the guidelines above and use this bypass you will be safe from usermode anticheats like VAC. If you follow the guidelines above and use this bypass you will be safe from usermode anticheats like VAC.
Obviously you can build and adapt upon my code to suit your needs. Obviously you can build and adapt upon my code to suit your needs.
If I was to make a cheat for myself i would put this bypass into something i call an 'external internal' cheat. If I was to make a cheat for myself i would put this bypass into something i call an 'external internal' cheat.
Whereby you make a cheat and inject into a legitimate program like discord and add a check to the this bypass to only hijack a handle from the process you inject into, giving the appearence that nothing is out of the ordinary Whereby you make a cheat and inject into a legitimate program like discord and add a check to the this bypass to only hijack a handle from the process you inject into, giving the appearance that nothing is out of the ordinary
However you can implement this bypass into any form of cheat, its your decision. However you can implement this bypass into any form of cheat, its your decision.
If you need want some more info i recommend you watch my YT video on this bypass. If you need want some more info i recommend you watch my YT video on this bypass.
Anyways if you want to see more of my stuff feel free to join my discord server discord.gg/********. Here's my YT as well https://www.youtube.com/channel/UCPN6OOLxn1OaBP5jPThIiog. Anyways if you want to see more of my stuff feel free to join my discord server discord.gg/********. Here's my YT as well https://www.youtube.com/channel/UCPN6OOLxn1OaBP5jPThIiog.
@@ -41,12 +41,12 @@ typedef struct _UNICODE_STRING {
USHORT Length; USHORT Length;
USHORT MaximumLength; USHORT MaximumLength;
PWCH Buffer; PWCH Buffer;
} UNICODE_STRING, * PUNICODE_STRING; } UNICODE_STRING, * PUNYCODE_STRING;
typedef struct _OBJECT_ATTRIBUTES { typedef struct _OBJECT_ATTRIBUTES {
ULONG Length; ULONG Length;
HANDLE RootDirectory; HANDLE RootDirectory;
PUNICODE_STRING ObjectName; PUNYCODE_STRING ObjectName;
ULONG Attributes; ULONG Attributes;
PVOID SecurityDescriptor; PVOID SecurityDescriptor;
PVOID SecurityQualityOfService; PVOID SecurityQualityOfService;
@@ -122,7 +122,7 @@ namespace hj {
HANDLE HijackedHandle = NULL; HANDLE HijackedHandle = NULL;
// simple function i made that will just initialize our Object_Attributes structure as NtOpenProcess will fail otherwise // simple function i made that will just initialize our Object_Attributes structure as NtOpenProcess will fail otherwise
OBJECT_ATTRIBUTES InitObjectAttributes(PUNICODE_STRING name, ULONG attributes, HANDLE hRoot, PSECURITY_DESCRIPTOR security) OBJECT_ATTRIBUTES InitObjectAttributes(PUNYCODE_STRING name, ULONG attributes, HANDLE hRoot, PSECURITY_DESCRIPTOR security)
{ {
OBJECT_ATTRIBUTES object; OBJECT_ATTRIBUTES object;
@@ -135,7 +135,7 @@ namespace hj {
return object; return object;
} }
bool IsHandleValid(HANDLE handle) // i made this to simply check if a handle is valid rather than repeating the if statments bool IsHandleValid(HANDLE handle) // i made this to simply check if a handle is valid rather than repeating the if statements
{ {
if (handle && handle != INVALID_HANDLE_VALUE) if (handle && handle != INVALID_HANDLE_VALUE)
{ {
@@ -156,7 +156,7 @@ namespace hj {
boolean OldPriv; //store the old privileges boolean OldPriv; //store the old privileges
// Give our program SeDeugPrivileges whcih allows us to get a handle to every process, even the highest privileged SYSTEM level processes. // Give our program SeDebugPrivileges which allows us to get a handle to every process, even the highest privileged SYSTEM level processes.
RtlAdjustPrivilege(SeDebugPriv, TRUE, FALSE, &OldPriv); RtlAdjustPrivilege(SeDebugPriv, TRUE, FALSE, &OldPriv);
//get the address of NtQuerySystemInformation in ntdll.dll so we can find all the open handles on our system //get the address of NtQuerySystemInformation in ntdll.dll so we can find all the open handles on our system
@@ -179,7 +179,7 @@ namespace hj {
//the size variable is the amount of bytes allocated to store all the open handles //the size variable is the amount of bytes allocated to store all the open handles
DWORD size = sizeof(SYSTEM_HANDLE_INFORMATION); DWORD size = sizeof(SYSTEM_HANDLE_INFORMATION);
//we allocate the memory to store all the handles on the heap rather than the stack becuase of the large amount of data //we allocate the memory to store all the handles on the heap rather than the stack because of the large amount of data
hInfo = (SYSTEM_HANDLE_INFORMATION*) new byte[size]; hInfo = (SYSTEM_HANDLE_INFORMATION*) new byte[size];
//zero the memory handle info //zero the memory handle info
@@ -252,7 +252,7 @@ namespace hj {
//create a a handle with duplicate only permissions to the process with a handle to our target. NOT OUR TARGET. //create a a handle with duplicate only permissions to the process with a handle to our target. NOT OUR TARGET.
NtRet = NtOpenProcess(&procHandle, PROCESS_DUP_HANDLE, &Obj_Attribute, &clientID); NtRet = NtOpenProcess(&procHandle, PROCESS_DUP_HANDLE, &Obj_Attribute, &clientID);
if (!IsHandleValid(procHandle) || !NT_SUCCESS(NtRet)) //check is the funcions succeeded and check the handle is valid if (!IsHandleValid(procHandle) || !NT_SUCCESS(NtRet)) //check is the functions succeeded and check the handle is valid
{ {
continue; continue;
} }
@@ -260,7 +260,7 @@ namespace hj {
//we duplicate the handle another process has to our target into our cheat with whatever permissions we want. I did all access. //we duplicate the handle another process has to our target into our cheat with whatever permissions we want. I did all access.
NtRet = NtDuplicateObject(procHandle, (HANDLE)hInfo->Handles[i].Handle, NtCurrentProcess, &HijackedHandle, PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_DUP_HANDLE, 0, 0); NtRet = NtDuplicateObject(procHandle, (HANDLE)hInfo->Handles[i].Handle, NtCurrentProcess, &HijackedHandle, PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_DUP_HANDLE, 0, 0);
if (!IsHandleValid(HijackedHandle) || !NT_SUCCESS(NtRet))//check is the funcions succeeded and check the handle is valid if (!IsHandleValid(HijackedHandle) || !NT_SUCCESS(NtRet))//check is the functions succeeded and check the handle is valid
{ {
continue; continue;