ReadProcessMemory & WriteProcessMemory blocken

12/02/2011 22:17 vwap#1
Hey, wollte fragen, wie man erkennt, wann ein externes Programm per Read- und WriteProcessMemory auf den RAM-Abschnitt von meinem Programm zugreift.

Möchte das verhindern, ist das ohne einen Treiber zu schreiben, möglich?
12/02/2011 22:27 MrSm!th#2
Entweder Dll Injection mit Usermode Hooks oder Kernel SSDT Hooks
12/02/2011 22:29 vwap#3
Dll Injection in jeden offenen Prozess?
Ist das "Umweltfreundlich"? Oo
12/02/2011 23:52 Dr. Coxxy#4
jop, solange du sauber arbeitest.
per registry kannst du windows anweisen die 'injection' für dich zu übernehmen.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
12/03/2011 00:27 MrSm!th#5
Bloß nicht, dass es ne scheiß und vor allem unsaubere Taktik.

Ja, in jeden Prozess. Kannst du via Windows Hooks realisieren.

Kernel Hooks sind aber schöner :p
Jeder Usermode Prozess kann deine Hooks, egal wie du sie setzt, wieder entfernen, ein sicherer Schutz ist es also nicht.
12/03/2011 00:37 vwap#6
Hättest du da irgendeinen Link zum Thema Kernel SSDT Hooks?
Eventuell ein Tutorial oder Beispiel?
12/07/2011 21:48 Omdi#7
Quote:
Originally Posted by MrSm!th View Post
Entweder Dll Injection mit Usermode Hooks oder Kernel SSDT Hooks
Enthält die SSDT nicht nur Nt Funktionen?
Wie soll man da Write&Readprocessmemory hooken ;O?
12/07/2011 21:59 MrSm!th#8
schon mal daran gedacht, dass alle kernel32 funktionen, die den kernel benötigen, auf der nt api aufbauen? :rolleyes:

btw. nein, größtenteils besteht sie aus Zw funktionen ;O
12/07/2011 23:35 vwap#9
Quote:
Originally Posted by Omdihar View Post
Enthält die SSDT nicht nur Nt Funktionen?
Wie soll man da Write&Readprocessmemory hooken ;O?
Write- und ReadProcessMemory sind sogesehen nur Wrapper für NtReadVirtualMemory und NtWriteVirtualMemory.

Habs aber schon hinbekommen! ;)
12/07/2011 23:37 MrSm!th#10
Kernel oder Usermode?
12/08/2011 14:25 vwap#11
Kernelmode.
12/10/2011 18:28 Omdi#12
Ich hab mich nochmal umgeschaut wegen den Kernel SSDT Hook, doch dafür muss man sich einen kleinen Treiber schreiben(.sys).
Geht das auch ohne Treiber?
Und damit kann ich jetzt nur API bzw. NT Funktionen hooken und z.B nicht Directx Funktionen hooken, ist das richtig ;O?
12/10/2011 19:52 MrSm!th#13
Selbstverständlich nicht.
Was glaubst du, wie man sonst in den Kernel kommt?

Du kannst da jeden Service hooken.
Allerdings wird es fast unmögich über einen Kernel DX Hook ingame zu zeichnen.