Sich vor Zugriffen schützen
-
Das WDK (ehemals DDK) ist doch kostenlos?!
Gruß
-
Es reicht mit auch ein Prozess rauszufinden, der auf mein Programm zugreift.
Dann kann man diesen Prozess rechzeitig killen.
Wie geht des?
Ihr könnt euch ja denke, dass es hier um einen AntiCheat geht.
Wie kann man eine dll injection verhindern?
-
Nein! Du kannst höchstens eine DLL Injection mitbekommen.
-
Und wie geht dies?
Interessant!
-
CreateRemoteThread hooken (SetWindowsHook o.ä. geht vielleicht auch).
Gruß
-
theliquidwave schrieb:
CreateRemoteThread hooken (SetWindowsHook o.ä. geht vielleicht auch).
Gruß
Wie willst du global CreateRemoteThread hooken ohne selbst eine DLL zu injecten?
Mal ganz davon abgesehen dass es IIRC auch andere Mittel & Wege gibt einem Prozess eine DLL unterzujubeln.
-
Jo, leider (und auch zum Glück) ist clientseitig nix 100% sicher. Da hilft nur STO.
http://lichttools.sourceforge.net/ <- lal, so ziemlich das Schwachsinnigste, was ich je gesehen hab
-
Man kann nur von Zeit zu Zeit kontrollieren ob sich im Prozess-Module befinde, die einem nicht passen... Aber Codeausführung im eigenen Prozess durch andere zu verhindern ist eigentlich unmöglich, sofern der andere Prozess die Privilegien hat.
Wenn der Benutzer es will und Prozessen dies erlaubt (bewusst oder unbewusst), kann sich der Prozess selbst dagegen kaum wehren.
-
Es gibt aber Anticheats, wie zB GameGuard. Auf den kann man auch nicht mit OpenProcess zugreifen.
-
Die werden dann wohl einen Treiber benutzen. Wenn es dann aber Cheats gibt, die ebenfalls auf Treiberebene (Kernel Mode / Ring 0, Wikipedia ;)) arbeiten, ist auch GameGuard machtlos.
Gruß
-
Sämtliche AutoIt Funktionen werden vom GameGuard geblockt. Aber "PostMessage" lässt selbst der GameGuard durch.
Die Frage besteht immer noch: "Wie kann ich mitbekommen, dass eine Dll injected wurde.". Oder hab ich das was falsch verstanden?Man kann nur von Zeit zu Zeit kontrollieren ob sich im Prozess-Module befinde, die einem nicht passen... Aber Codeausführung im eigenen Prozess durch andere zu verhindern ist eigentlich unmöglich, sofern der andere Prozess die Privilegien hat.
Wenn der Benutzer es will und Prozessen dies erlaubt (bewusst oder unbewusst), kann sich der Prozess selbst dagegen kaum wehren.
Wie kann man denn das anstellen? Ich hab schon gegoogelt.
-
Hat keiner ein Idee, wie ich im Prozess nahgucken kann, ob da Module sind, die nicht passen.
-
Mit CreateToolhelp32Snapshot kannst du Informationen über alle Module in deinem Prozessraum erhalten. Jetzt musst du dir halt etwas ausdenken, wie du fremde Module erkennen willst.
Falls deine Anwendung keine anderen DLLs benutzt, könntest du z. b. am Pfad erkennen, ob es eine DLL von Windows ist und wenn nicht wurde diese wohl injeziert etc.
-
Wenn aber ein Block von Code in den Prozess kopiert wurde nützt das Suchen nach Modulen nichts.
-
Es ist ja auch nicht so als ob eine DLL den PE-Header im Speicher nicht löschen oder verändern könnte...
Gruß
-
Per NtQueryVirtualMemory und Hashing-Algorithmen deiner Wahl nach unerwünschtem Speicher, den du blacklisted hast, suchen.
-
Ein kleines Beispiel wäre göttlich :).