Prozess Speicher versteckt lesen/schreiben
-
Das programm (xTrap) verwendet einen Treiber und hookt die SSDT (s.o.)
Ich habe ebenfalls einen Treiber, der die SSDT enthooktDie Frage ist nun, wie erstelle (oder bekomme) ich eine Crash-sichere Read/Write API, ohne Handles zu verwenden?
Und: es ist möglich, aus Ring3 Handles zu überprüfen: http://w-shadow.com/blog/2006/10/19/listing-all-open-handles/
-
Flamefire schrieb:
Und: es ist möglich, aus Ring3 Handles zu überprüfen: http://w-shadow.com/blog/2006/10/19/listing-all-open-handles/
Hook das.

-
Das war die Idee, die ich im 1.Post angesprochen hatte: NtQuerySystemInformation zu hooken.
Ist aber etwas knifflig, da dort wieder Pointer umzubiegen sind, die sich möglicherweise in OSes ändern
-
Hast du mal überprüft ob GameGuard eventuell nur ReadProcessMemory überwacht aber nicht NTReadVirtualMemory? Lustig wärs

-
Gameguard weiß ich grad nicht
Xtrap ist wie gesagt im Kernel vertreten mit regelmäßigen handlechecks und hooks auf viele SSDT einträge
-
Flamefire hast du icq oder msn? Ich hab auch probleme mit gameguard und versuche es zu bypassen vielleicht schaffen wir es zusammen
-
Flamefire schrieb:
Gameguard weiß ich grad nicht
Xtrap ist wie gesagt im Kernel vertreten mit regelmäßigen handlechecks und hooks auf viele SSDT einträgeHabe etwas über Xtrap gelesen, wer zur Hölle lädt sich sowas in das System?
Da hab ich lieber einen Trojaner, der macht nicht soviel Frickelei.
-
zu dem Thema hab ich auch mal ne Frage:
wie kann Gameguard hooks erkennen? Es kann irgendwie änderungen in der Code Section finden aber wie?
-
winexec schrieb:
zu dem Thema hab ich auch mal ne Frage:
wie kann Gameguard hooks erkennen? Es kann irgendwie änderungen in der Code Section finden aber wie?Hashing.
Auch etwas interessantes, zwar auf Warden bezogen, aber sicherlich hilfreich:
http://blog.cypherjb.com/2009/11/winninja-module-hiding-code.html
-
hä? was soll das bringen, wenn ich meine DLL verstecke? der Hook befindet sich doch in der Gameexe dann da bringt es auch nix wenn die DLL unsichtbar ist.
Und was ist PEB?
-
winexec schrieb:
hä? was soll das bringen, wenn ich meine DLL verstecke? der Hook befindet sich doch in der Gameexe dann da bringt es auch nix wenn die DLL unsichtbar ist.
Und was ist PEB?Nach Möglichkeit solltest du keine Spielfunktionen hooken.
Hook API-Funktionen, also DirectX/WinAPI etc.
Lass nur die Codesection des Prozesses in Ruhe.Außerdem bezieht sich der Link nicht nur auf DLLs.
Du musst nach Möglichkeit herausfinden, was den Code hasht und da entsprechend hooken.
-
ich muss aber die Code Section des Games hooken
-
winexec schrieb:
ich muss aber die Code Section des Games hooken
...
Du musst nach Möglichkeit herausfinden, was den Code hasht und da entsprechend hooken.
Kannst ja mal PEiD nach Signaturen bekannter Krypto/Hasing-Algorithmen ansetzen und sehen wo du eventuell ansetzen könntest.
Gibt aber recht wenige Möglichkeiten da was zu machen.Edit: Einen Memory-Breakpoint auf die Codesection zu setzen ist auch ne super Idee. Was soll den sonst auf die Codesection zugreifen ?
-
Icematix schrieb:
Edit: Einen Memory-Breakpoint auf die Codesection zu setzen ist auch ne super Idee. Was soll den sonst auf die Codesection zugreifen ?
An sich ja, nicht aber, wenn das ganze Ding noch mit Themida geschützt ist

Für die neuste Variante habe ich keinen Bypass für olly. Trotz Ring0 Plugins wie Phantom.Da ich nur auf Daten-Speicher zugreifen muss, hat es in meinem Fall gereicht, die ZwQuerySystemInformation zu hooken. Dann übergeb ich meinem Treiber nur die PID und immer wenn die PID ZwQuerySystemInformation aufruft, kommt aus "irgendeinem" Grund nichts zurück

Funktioniert soweit. Das lustige war aber: Als ich die PID einfach so an meine Treiber geben wollte, hat Xtrap das erkannt und geblockt. Nicht schlecht...Jetzt übergebe ich die eben verschlüsselt. War nicht so leicht eine Verschlüsselung im Kernel zu basteln, aber musste ja nix gutes werden.
-
War nicht so leicht eine Verschlüsselung im Kernel zu basteln, aber musste ja nix gutes werden.DWORD pid ^= 1
Sollte reichen

-
ich bin zwar nur ein hobby leie und will jez nicht wichtig erscheinen aber hast du schon daran gedacht direkt auf die rams zuzugreifen um aus dem prozess auszulesen und in en prozess zu schreiben.
-
Hätte es auch, aber ich wollte mir ja gleich den Spaß machen, und es auch gegen einfach Angriffe absichern. Zwar nicht das Ausblenden der PID aber mögliche Erweitrerungen des Treibers.
-
Flamefire hast icq oder msn? Ich probiere auch gameguard zu bypassen.
-
punky schrieb:
ich bin zwar nur ein hobby leie und will jez nicht wichtig erscheinen aber hast du schon daran gedacht direkt auf die rams zuzugreifen um aus dem prozess auszulesen und in en prozess zu schreiben.
Er nutzt doch schon einen Treiber.
Tiefer als ein Kernelmodul zu schreiben kann man nicht gehen.
-
doch er hat recht. man kann den ram direkt öffnen und in seinen prozess mappen. dann hätte man auch vollzugriff.
dafür gibts nen befehl: KeAttachProcess oder so.
braucht aber auch ein handle.
wenn man noch tiefer geht, um ohne diese funktion auszukommen, wird es zu schwer.icq u.ä. geb ich nicht raus, sry.
ich glaube auch, dass du dich noch nicht mit kernel-modulen beschäftigt hast, welche möglichkeiten und probleme das bringt. von daher etwas schwierig.
auch versuche ich nicht nur an gameguard vorbeizukommen, sondern auch an varianten. allerdings nicht, code zu ändern, sondern nur daten. ist um längen einfacher. alles andere müsste sehr spezifisch auf eine funktion sein