Начинающий
- Статус
- Оффлайн
- Регистрация
- 19 Янв 2023
- Сообщения
- 21
- Реакции
- 1
Полный новичок в c++ но за 3 дня научился делать мелкие интернал читы, например на ту же замену денег в играх или хп и еще другого, научился ползоваться IDA PRO с CheatEngine и находить оффсеты
КОроче какая то ебень с CreateMove, захукалось все, сигнатура правильная, пытался создать бхоп но чето по пизде пошло все:
и эта хуйня вроде правильна??
да и в 1 коде строка ->
Log("VALID CMD: cmd_num=%d, tick=%d, yaw=%.1f, buttons=0x%X",
cmd->command_number, cmd->tick_count, cmd->viewangles[1], cmd->buttons);
выводит tick = 13499, yaw = 0 а все остальное правилное, проверял через MemCheck
в чем проблемы я понять не могу, и еще, как выгружать длл чтобы не перезаходить в кс2 для повторного инжекта? вроде консоль щас пропадает с хуками, но когда инжекчу ниче не происходит.
в будущем хочу сделать rage либо movement чит с эджбагами и прочей хуйней
КОроче какая то ебень с CreateMove, захукалось все, сигнатура правильная, пытался создать бхоп но чето по пизде пошло все:
C++:
CmdUser* cmd = nullptr;
// Принт
void Log(const char* format, ...) {
char buffer[1024];
va_list args;
va_start(args, format);
vsprintf_s(buffer, format, args);
va_end(args);
std::cout << "[TestCheat] " << buffer << std::endl;
}
// CreateMove хук
typedef void(__fastcall* oCreateMoveFn)(CmdUser*, int, char);
inline oCreateMoveFn oCreateMove = nullptr;
void __fastcall CreateMoveHook(CmdUser* cmd, int edx, char a2) {
static int call_count = 0;
call_count++;
Log("CreateMove #%d - edx: 0x%p, cmd: 0x%p", call_count, edx, cmd);
if (cmd) {
Log("VALID CMD: cmd_num=%d, tick=%d, yaw=%.1f, buttons=0x%X",
cmd->command_number, cmd->tick_count, cmd->viewangles[1], cmd->buttons);
if (cmd->buttons & (1 << 1)) { // IN_JUMP
Log("JUMP PRESSED!");
}
}
oCreateMove(cmd, edx, a2);
}
bool InitializeCreateMoveHook() {
HMODULE module = GetModuleHandleA("client.dll");
if (!module) {
Log("client.dll not found!");
return false;
}
auto createMoveAddr = PatternScan((void*)module, "85 D2 0F 85 ? ? ? ? 48 8B C4 44 88 40");
if (!createMoveAddr) {
Log("CreateMove pattern not found!");
return false;
}
Log("CreateMove found at: 0x%p", (void*)createMoveAddr);
MH_Initialize();
MH_CreateHook((LPVOID)createMoveAddr, (LPVOID)CreateMoveHook, (LPVOID*)&oCreateMove);
MH_EnableHook(MH_ALL_HOOKS);
Log("CreateMove hook installed!");
return true;
}
// Анлоадикс
void UnloadHooks() {
MH_DisableHook(MH_ALL_HOOKS);
MH_RemoveHook(MH_ALL_HOOKS);
MH_Uninitialize();
Log("Hooks unloaded");
}
void game_loop(HMODULE inst) {
Sleep(2000);
if (!InitializeCreateMoveHook()) {
Log("Continuing without CreateMove hook");
}
Log("Cheat ready! Press END to unload");
while (!GetAsyncKeyState(VK_END)) {
Sleep(10);
}
}
DWORD WINAPI MainThread(HMODULE inst) {
AllocConsole();
FILE* f;
freopen_s(&f, "CONOUT$", "w", stdout);
SetConsoleTitleA("Cheat Console");
Log("Cheat loaded!");
game_loop(inst);
UnloadHooks();
if (f) {
fclose(f);
}
FreeConsole();
FreeLibraryAndExitThread(inst, 0);
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {
if (reason == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(hModule);
CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)MainThread, hModule, 0, nullptr);
}
return TRUE;
}
и эта хуйня вроде правильна??
C++:
struct CmdUser {
int command_number;
int tick_count;
float viewangles[3];
float forwardmove;
float sidemove;
float upmove;
int buttons;
char impulse;
int weaponselect;
int weaponsubtype;
int random_seed;
short mousedx;
short mousedy;
bool hasbeenpredicted;
};
да и в 1 коде строка ->
Log("VALID CMD: cmd_num=%d, tick=%d, yaw=%.1f, buttons=0x%X",
cmd->command_number, cmd->tick_count, cmd->viewangles[1], cmd->buttons);
выводит tick = 13499, yaw = 0 а все остальное правилное, проверял через MemCheck
в чем проблемы я понять не могу, и еще, как выгружать длл чтобы не перезаходить в кс2 для повторного инжекта? вроде консоль щас пропадает с хуками, но когда инжекчу ниче не происходит.
в будущем хочу сделать rage либо movement чит с эджбагами и прочей хуйней