Ich versuche, eine Datenflussanomalieerkennung mit ptrace zu implementieren. Nach ein wenig Recherche habe ich ein Programm implementiert, das strace ähnlich ist. Nun, ich bin verwirrt darüber, was ist das, was das Wiki sagt mir über Systemaufrufe:Funktioniert ptrace auf Benutzerebene oder Kernel-Ebene?
„Systemaufrufe stellen die Schnittstelle zwischen einem Prozess und dem Betriebssystem“
Wenn ich verwende Um den Speicher des Prozesses zu ändern, arbeite ich an User Space oder Kernel Space? Ich bin wirklich verwirrt darüber.
Tatsächlich wird Ptrace ein 'Int 0x80' für jeden Systemaufruf rechts erzeugen? Also habe ich es mit einem Interrupt zu tun, also bin ich im Kernelraum richtig? Das war mein erster Gedanke. Lag ich falsch ? –
Nicht genau, es kann den Prozess stoppen, wenn * es * einen Systemaufruf macht (der bereits "int 0x80" für Linux auf Intel ist), aber es kann auch einfach Prozessspeicher oder Register einsehen. Irgendwelche von diesen können nicht direkt zu einem Prozess durch einen anderen Prozess getan werden; dieser zweite Prozess muss stattdessen den Kernel bitten, auf den ersten zu reagieren, was 'ptrace' tut. – geekosaur
Also wenn ich direkt im Kernel-Bereich arbeiten möchte, was soll ich tun ?? –