Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Kernel RPM (STATUS_PARTIAL_COPY)
#1
Kernel RPM (STATUS_PARTIAL_COPY)
Reply
#2
https://msdn.microsoft.com/en-us/library/cc704588.aspx Zacytować: Z powodu konfliktów ochronnych nie można skopiować wszystkich żądanych bajtów. Dlaczego używasz UserMode w swoim wywołaniu MmCopyVirtualMemory?
Reply
#3
Zacytować: Originally Posted by CoolA1d https://msdn.microsoft.com/en-us/library/cc704588.aspx Dlaczego używasz UserMode w swoim wywołaniu MmCopyVirtualMemory? Tak, wiem, co oznacza błąd, próbowałem ZwAllocateVirtualMemory usunąć flagi, ale nie wydaje się działać, ale może zrobiłem to źle. Również UserMode jest tam, ponieważ ktoś zaproponował przetestowanie go zamiast KernelMode.
Reply
#4
Zacytować: Napisał pierwotnie koro35 Tak, wiem, co oznacza błąd, próbowałem ZwAllocateVirtualMemory usunąć flagi, ale nie wydaje się działać, ale może zrobiłem to źle. Również UserMode jest tam, ponieważ ktoś zaproponował przetestowanie go zamiast KernelMode. Nie jestem do końca pewien, czy to jest problem, więc mógłbym się mylić, ale spróbuj użyć KernelMode zamiast w twoim wywołaniu mmcopyvirtualmemory.
Reply
#5
Zacytować: Originally Posted by CoolA1d Nie jestem do końca pewien, czy to jest problem, więc mógłbym się mylić, ale spróbuj użyć KernelMode zamiast w twoim wywołaniu mmcopyvirtualmemory. Robiłem to pierwszy, po prostu próbowałem UserMode jako test.
Reply
#6
Jaka jest wartość ulBytes po zakończeniu MmCopyVirtualMemory? Dla mnie wygląda na to, że twój adres jest nieprawidłowy.
Reply
#7
Zacytować: Originally Posted by CoolA1d Czy kiedykolwiek to działa? Jeśli tak, jaki był problem? Może pomóc innym, którzy próbują czytać z Kernel Land Tak, w końcu udało się to dzięki @ DarthTon za pośrednictwem PM. Czytaj jak to w jądrze Kod: status = MmCopyVirtualMemory (Proces, (PVOID) Request -> SourceAddress, PsGetCurrentProcess (), Request -> OutputAddress, Request -> Size, UserMode i size); i zdobyć go w ten sposób w trybie użytkownika Kod: żądanie . OutputAddress = malloc (request. Size); jeśli (DeviceIoControl ()) buffer = * (T *) (request. OutputAddress); bufor powrotu;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)