- Статус
- Оффлайн
- Регистрация
- 5 Сен 2022
- Сообщения
- 121
- Реакции
- 22
мооожееет чисто в теории кому то это надо 
онли для goose goose duck ворк

онли для goose goose duck ворк
Пожалуйста, авторизуйтесь для просмотра ссылки.
eac disabler for goose goose duck:
#include <windows.h>
#include <tlhelp32.h>
#include <thread>
#include <chrono>
DWORD GetProcessIdByName(const wchar_t* processName) {
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot == INVALID_HANDLE_VALUE) return 0;
PROCESSENTRY32W entry = { sizeof(PROCESSENTRY32W) };
if (Process32FirstW(snapshot, &entry)) {
do {
if (_wcsicmp(entry.szExeFile, processName) == 0) {
CloseHandle(snapshot);
return entry.th32ProcessID;
}
} while (Process32NextW(snapshot, &entry));
}
CloseHandle(snapshot);
return 0;
}
uintptr_t GetModuleBaseAddress(DWORD pid, const wchar_t* moduleName) {
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, pid);
if (snapshot == INVALID_HANDLE_VALUE) return 0;
MODULEENTRY32W entry = { sizeof(MODULEENTRY32W) };
if (Module32FirstW(snapshot, &entry)) {
do {
if (_wcsicmp(entry.szModule, moduleName) == 0) {
CloseHandle(snapshot);
return (uintptr_t)entry.modBaseAddr;
}
} while (Module32NextW(snapshot, &entry));
}
CloseHandle(snapshot);
return 0;
}
void ApplyPatches(DWORD pid) {
uintptr_t moduleBase = 0;
while (moduleBase == 0) {
moduleBase = GetModuleBaseAddress(pid, L"GameAssembly.dll");
}
if (!moduleBase) {
return;
}
printf("\n[+] base found at: 0x%p\n", (void*)moduleBase);
HANDLE hProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, pid);
if (!hProcess) {
printf("[-] failed to open process (%d)\n", GetLastError());
return;
}
uintptr_t addr1 = moduleBase + 0xB00B70;
BYTE patch[] = { 0xC3 }; // ret
if (WriteProcessMemory(hProcess, (LPVOID)addr1, patch, sizeof(patch), nullptr)) {
printf("[+] patch applied\n");
}
else {
printf("[-] failed to patch first method (%d)\n", GetLastError());
}
uintptr_t addr2 = moduleBase + 0xB049F0;
if (WriteProcessMemory(hProcess, (LPVOID)addr2, patch, sizeof(patch), nullptr)) {
printf("[+] ML Check 1 patched\n");
}
else {
printf("[-] ML Check 1 failed\n");
}
uintptr_t addr3 = moduleBase + 0xB04CE0;
if (WriteProcessMemory(hProcess, (LPVOID)addr3, patch, sizeof(patch), nullptr)) {
printf("[+] ML Check 2 patched\n");
}
else {
printf("[-] ML Check 2 failed\n");
}
CloseHandle(hProcess);
}
int main() {
DWORD pid = 0;
while (!pid) {
printf("[.] Waiting for Goose Goose Duck.exe...\r");
pid = GetProcessIdByName(L"Goose Goose Duck.exe");
}
printf("\n[+] PID: %d\n", pid);
ApplyPatches(pid);
printf("\n[+] completed\n");
return 0;
}
Последнее редактирование:
