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

zorinchel

Стажёры
  • Публикаций

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

  • Посещение

Репутация

1 Навыки не прокачены

Информация о zorinchel

  • Звание
    Новичок
  1. а таким образом можно вывести не текст, а например окно другой программы?
  2. Привет! Может кто-нибудь подскажет как нормально вывести окно одной игры поверх другой, а то у меня получается совсем не то что нужно вот что получилось в итоге
  3. тогда объясни, как получать значения указателей, потом читать их как адрес, например: 0xBA1300 базовый адрес, значение в этом адресе 0xCF0000, плюс смещение 0x384 получаем адрес 0xCF0384 в нем значение 0xCA0002, в этом адресе значение 188, как до него добраться?
  4. DWORD WINAPI GtaSA_thread (LPVOID){while(true){INT value = *(DWORD*)(*(DWORD*)(*(DWORD*)(0xBA18FC)+0x384)+0x00);if(value==188){DWORD*var = (DWORD*)(0x6CC3B2);DWORD*var2 = (DWORD*)(0x6C9103);DWORD*var3 = (DWORD*)(0x406AF3);DWORD*var4 = (DWORD*)(0x6c9690);DWORD*var5 = (DWORD*)(0x6C9F1C);DWORD*var6 = (DWORD*)(0x6C8F10);*var -= 0x2c0000;*var2 -= 0x2c0000;*var3 -= 0x2c0000;*var4 -= 0x2c0000;*var5 -= 0x2c0000;*var6 -= 0x2c0000;}Sleep(500);}return 0;}
  5. DWORD WINAPI GtaSA_thread (LPVOID){ DWORD* pl = (DWORD *)0xBA18FC; DWORD value = *pl; CreateConsole (); { for (;;Sleep (1000)) printf (" ID = %p", *pl); return 0; }*p1 равно нужному адресу, а как дальше прочитать этот адрес и прибавить смещение?
  6. так тоже не получается DWORD WINAPI GtaSA_thread (LPVOID){ DWORD Cp1 = *(DWORD*)(0xBA18FC); DWORD Cp2 = *(DWORD*)(Cp1 + 0x384); }
  7. цепочка указателей в таблице #include <iostream>#include <windows.h>#include <string>#include <conio.h>#include <fstream>#include <iomanip>#include <stdio.h>#include <io.h>#include <fcntl.h>#include <mmsystem.h>#pragma comment(lib, "winmm")using namespace std; DWORD WINAPI GtaSA_thread (LPVOID); DWORD APIENTRY DllMain (HMODULE hModule, DWORD ul_reason_for_call, LPVOID ipReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: CreateThread (NULL, NULL, GtaSA_thread, NULL, NULL, NULL); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return true;} void CreateConsole (){int hConHandle = 0;HANDLE lStdHandle = 0;FILE *fp = 0;AllocConsole ();SetConsoleTitle ("ID ");lStdHandle = GetStdHandle (STD_OUTPUT_HANDLE);hConHandle = _open_osfhandle (PtrToUlong (lStdHandle), _O_TEXT);fp = _fdopen (hConHandle, "w");*stdout = *fp;setvbuf (stdout, NULL, _IONBF, 0);}DWORD WINAPI GtaSA_thread (LPVOID){ DWORD base = 0xBA18FC; DWORD p1 = 0; DWORD p2 = 0; DWORD p3 = 0; DWORD p4 = 0; DWORD old_prot = 0; VirtualProtectEx(GtaSA_thread, (LPVOID)base, sizeof(base), PAGE_EXECUTE_READWRITE, &old_prot); ReadProcessMemory(GtaSA_thread, (LPVOID)base, &p1, sizeof(base), NULL);//прочитали, записали в p1 p2 = p1 + 0x384;// прибавили смещение ReadProcessMemory(GtaSA_thread, (LPVOID)p2, &p3, sizeof(p2), NULL);//прочитали адрес p2, записали в p3 p3 = p2 + 0x00; ReadProcessMemory(GtaSA_thread, (LPVOID)p3, &p4, sizeof(p3), NULL); if (p4 == 188) {// если равно, то DWORD*var = (DWORD*)(0x6CC3B2); DWORD*var2 = (DWORD*)(0x6C9103); DWORD*var3 = (DWORD*)(0x406AF3); DWORD*var4 = (DWORD*)(0x6c9690); DWORD*var5 = (DWORD*)(0x6C9F1C); DWORD*var6 = (DWORD*)(0x6C8F10); *var -= 0x2c0000; *var2 -= 0x2c0000; *var3 -= 0x2c0000; *var4 -= 0x2c0000; *var5 -= 0x2c0000; *var6 -= 0x2c0000; WriteProcessMemory(GtaSA_thread, (void*)var, var, sizeof(4), NULL);WriteProcessMemory(GtaSA_thread, (void*)var2, var2, sizeof(4), NULL);WriteProcessMemory(GtaSA_thread, (void*)var3, var3, sizeof(4), NULL);WriteProcessMemory(GtaSA_thread, (void*)var4, var4, sizeof(4), NULL);WriteProcessMemory(GtaSA_thread, (void*)var5, var5, sizeof(4), NULL);WriteProcessMemory(GtaSA_thread, (void*)var6, var6, sizeof(4), NULL); } CreateConsole (); { for (;;Sleep (1000)) printf (" ID = %p", p4); return 0; } }
×

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

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