Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pobranie najbliższego wolnego adresu pamięci
#1
Cześć, chcę uzyskać najbliższy wolny adres pamięci, aby przydzielić pamięć dla Codecave, ale chcę, aby był w granicach limitu instrukcji JMP 0xffffffff-80000000, próbuję następującego kodu, ale bez powodzenia       Kod:   DWORD64 MemAddr = 0; DWORD64 Adres = 0x0000000140548AE6 & 0xFFFFFFFFFFFFF000; HANDLE hProc = OpenProcess (PROCESS_ALL_ACCESS, NULL, ProcessID); if (hProc) {dla (Przesunięcie DWORD = 0; (Adres + 0x000000007FFFFFFF)> ((Adres - 0x000000007FFFFFFF) + przesunięcie); przesunięcie + = 100) {MemAddr = (DWORD64) VirtualAllocEx (hProc, (DWORD64 *) ((Adres - 0x000000007FFFFFFF) + przesunięcie), MemorySize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); if ((DWORD64) MemAddr) {break; }} CloseHandle (hProc); return (DWORD64) MemAddr; } return 0;   Ofc procesu docelowego to 64bit
Reply
#2
VirtualQuery?
Reply
#3
Zacytować: Napisał pierwotnie ZeaS VirtualQuery? Idk, dlaczego nie pomyślałem o użyciu VQ, dziękuję! , Czy moja pętla powyżej nie powinna działać mimo braku VQ? .
Reply




Users browsing this thread: 1 Guest(s)