Bernhard Stock schrieb:
Gibt es eigentlich solche Sicherheitsfeatures? Also die mit einem
Passwort arbeiten oder ähnliches?
Nicht innerhalb eines Programms/Prozesses. Selbst in "managed" Sprachen wie Java oder C# kannst du über Umwege (Reflection oder JNI) auf alles zugreifen, was im Prozess passiert, in C und C++ sowieso.
Solche Sicherheitsbarrieren werden praktisch immer zwischen Prozessen oder ganzen Computern implementiert. Wenn du z.B. auf einen SQL-Server oder ein REST-API zugreifst, kann der Server ein Passwort verlangen. Das kann der Client nicht leicht umgehen, weil er keinen Zugriff zum Prozess der Server-Software hat.
Wer physischen Zugriff auf den Computer oder Betriebssystem des Servers hat, kann das aber umgehen indem er im Adressraum des Servers herum pfuscht, ähnlich wie Cracks zum Kopierschutz aushebeln.
Ganz interessant ist das unter Android, dort können Apps über Binder (eine Art RPC) Funktionen in anderen Apps oder System-Diensten aufrufen, welche das aber verweigern können, u.a. abhängig von den Permissions der App. Das lässt sich nicht umgehen außer durch rooten (oder eventuelle Bugs im System). Dazu kommt der Schutz durch SELinux, bei dem der Kernel Zugriffe auf Systemressourcen steuert (u.a. Dateien, Sockets).