Перейти к содержанию

vladimir777

Стажёры
  • Постов

    10
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены
  1. veh отладчик работает в виндовс 10 так же, как и в вин 7 неделю назад у меня. Короче я смог найти указатели, проблема в том, что когда я ищу "вероятное значение указателя", то находится много адресов, но стоит мне поставить брекпойнт на другой адрес(с другим "вероятное значение указателя"), то лишние адреса сразу можно отсеять(на который, если бы я поставил брекпойнт, то игра бы вылетела). теперь хотя бы указатели искать могу.
  2. я тоже так сначала думал, но, как я написал, я даже не могу пройти обучение в cheat engine где нужно искать указатели
  3. Здравствуйте, у меня проблема с VEH отладчиком в cheat engine, когда я ставлю брекпойнт на запись или на доступ на некоторые адреса, то игра крашится. Игра крашится когда я пытаюсь искать указатели, я могу поставить бряк на значение жизней например, а дальше, когда ищу смещение - не могу, игра вылетает, даже не могу пройти обучение в чит енжин, где надо искать указатели, в чём может быть проблема? у меня windows 10 x64, раньше была win7 x64, была такая же проблема. когда win10 поставил, отладчик в режиме ядра перестал нормально работать, появляется BSOD с ошибкой CLOCK_WATCHDOG_TIMEOUT, помогает запуск с 1 ядром, но в семёрке такого не было, что сейчас ему может мешать? или может есть ещё какие нибудь отладчики, с помощью которых можно указатели искать? сейчас заметил, что при поиске указателей с VEH отладчиком больше адресов находится, чем с windows отладчиком, походу игра крашится, когда я на эти новые адреса брекпойнт ставлю
  4. никто не знает,как поставить брейпойнт на потоки созданные с помощью createRemoteThread, если в настройках чин енжина стоит VEH отладчик? с windows отладчиком ставится, но он играми палится
  5. ну наконец то получилось вызвать функцию из другой программы(хоть и моей). как оказалось, если писать __declspec(naked) , то в ассемблерной вставки в конце нужно "ret" писать получается. И если я вызываю функцию: push eax push ecxcall edx то потом нужно ещё написать :pop ecxpop eax а если не напишу, то потом программа зависает, а в оригинале кода такого не было. Ещё хотел спросить, если я вызываю с помощью createRemoteThread функцию в чужой программе, то как параметры передать(те, которые я передаю с помощью push)?
  6. не знаю почему не работало вначале, но вчера не работало из за __declspec(naked)
  7. спасибо! работает. попробую завтра методом тыка определить, почему раньше не работал). Брекпойнт в чит енжине всё равно не срабатывает, хоть я теперь точно ставлю брекпойнт на инструкцию, которую я и должен был записать: mov dword ptr ds : [0x05CC03C1], 777 , и по адресу 0x05CC03C1 записалась нужная цифра
  8. спасибо за ответ! 0. так в оригинале было. 1. тоже в оригинале так было 2. ну вроде сам память создаю, где читать\писать можно 3. немного) я поставил ноль вместо параметров, и это не сработало, пробовал на x32 программах(скайп например), в VirtualAllocEx место PAGE_readwrite поставил PAGE_EXECUTE_READWRITE , хотя в память и так записывается, программа зависает при создании потока, скинь пожалуйста свой рабочий код, хотя если там только ноль вместо параметров в createRemoteThread, то почему у меня не работает. и ещё вопрос: с помощью CreateRemoteThread можно создавать потоки только в функциях, всмысле нельзя просто создать поток, если будут одни nop'ы?
  9. все ещё актуально, кто подскажет, почему процесс зависает после createRemoteThread?
  10. Здравствуйте, на жуке zhyk.ru/forum/showthread.php?t=274071 взял код для вставки своего кода в чужой процесс, но он у меня почему то не работает, после CreateRemoteThread процесс(куда я вставил код) сразу зависает, брекпойнт который я ставлю на начало функции(которую я вставил), не срабатывает, да и выглядит вставленная функция странно. Да и вообще я не как не смог с помощью CreateRemoteThread создать поток в чужом процессе... в чем может быть проблема? код в оригинале был для c++ builder, но я пишу в visual studio, вот код: //---------------------------------------------------------------------------#include <Windows.h>#include <TlHelp32.h>//---------------------------------------------------------------------------//---------------------------------------------------------------------------//---------------------------------------------------------------------------#define INJECT_OK 0x00#define INJECT_NO_PROCESS 0x01#define INJECT_NO_ACCESS 0x02#define INJECT_BAD_VERSION 0x03#define INJECT_THREAD_FAIL 0x04//--------------------------------------------------------------------------- DWORD GetprocessbyName(char* process_name){HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 process;DWORD proc_id = 0;if (Process32First(snapshot, &process)){while (Process32Next(snapshot, &process)){if (_stricmp(process.szExeFile, process_name) == 0){proc_id = process.th32ProcessID;break;}}}CloseHandle(snapshot);return proc_id;}BYTE InjectAndExecute(void* Func, void* Params){DWORD pId = GetprocessbyName("elementclient.exe");if (!pId)return INJECT_NO_PROCESS; // нет такого процесса HANDLE hProc;HANDLE hProcThread;void* pFunction;void* pParams; hProc = OpenProcess(PROCESS_ALL_ACCESS, false, pId);if (hProc == INVALID_HANDLE_VALUE) // не удалось открыть процессreturn INJECT_NO_ACCESS; //if (!IsGameVersionValid(hProc))// return INJECT_BAD_VERSION; // не та версия игры pFunction = VirtualAllocEx(hProc, NULL, 4096, MEM_COMMIT, PAGE_READWRITE);pParams = VirtualAllocEx(hProc, NULL, 256, MEM_COMMIT, PAGE_READWRITE);WriteProcessMemory(hProc, pFunction, Func, 4096, NULL);WriteProcessMemory(hProc, pParams, Params, 256, NULL); hProcThread = CreateRemoteThread(hProc, NULL, NULL, (LPTHREAD_START_ROUTINE)pFunction, pParams, NULL, NULL);if (hProcThread == INVALID_HANDLE_VALUE) // не удалось создать поток{VirtualFreeEx(hProc, pFunction, 4096, MEM_RELEASE);VirtualFreeEx(hProc, pParams, 256, MEM_RELEASE);CloseHandle(hProc);return INJECT_THREAD_FAIL;} WaitForSingleObject(hProcThread, INFINITE); // ожидаем завершения работы потокаCloseHandle(hProcThread); // освобождаем память VirtualFreeEx(hProc, pFunction, 4096, MEM_RELEASE);VirtualFreeEx(hProc, pParams, 256, MEM_RELEASE);CloseHandle(hProc);return INJECT_OK;}//---------------------------------------------------------------------------//---------------------------------------------------------------------------void __stdcall Attack_THREAD(){__asm{pushadmov edx, 0x0044FE60//mov ecx, dword ptr ds : [BA]//mov ecx, dword ptr ds : [ecx + 0x1C]//mov ecx, dword ptr ds : [ecx + 0x20]//push - 1//push 0//push 0//push 0//call edxpopad}}//---------------------------------------------------------------------------class CHostPlayer{public:bool SelectSomething(DWORD GlobalId){//return (InjectAndExecute(&Target_THREAD, &GlobalId) == INJECT_OK);}bool AttackSelectedTarget(){return (InjectAndExecute(&Attack_THREAD, NULL) == INJECT_OK);}} *HostPlayer; int main(){HostPlayer->AttackSelectedTarget(); return 0;}
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.