Die Prämisse ist folgende:
Ich habe eine App, die in ihrem Code so eingestellt wurde, dass sie nur auf den OS X-Versionen 10.4 bis 10.9.2 ausgeführt wird. (Wenn ich versuche, es zu installieren, erhalte ich die Meldung „Diese Version von ____ ist für Mac OS X 10.4 bis 10.9.2.“). Ich habe auf 10.9.3 aktualisiert, und der Entwickler muss nur die App aktualisieren, um diese Einschränkung in seinem Tool zu beheben.
Ich stehe tatsächlich in Kontakt mit dem Entwickler, der sagt, er sei „zu beschäftigt“, um gerade an der App zu arbeiten oder ein Update herauszugeben.
Ich habe herausgefunden, dass die App nur liest, /System/Library/CoreServices/SystemVersion.plist
um die Betriebssystemversion zu bestimmen, und es ist mir gelungen, die Installationsbeschränkung zu umgehen, indem ich die Datei mithilfe dieser Anleitung vorübergehend bearbeitet habe. Aber nachdem ich die plist-Werte auf 10.9.3 zurückgesetzt und das System neu gestartet hatte, um (hoffentlich) mit der App zu starten, sah ich, dass es sogar prüft, SystemVersion.plist
ob es auch läuft – nicht nur während der Installation.
Ich mache mir Sorgen, dass, wenn ich SystemVersion.plist
auf unbestimmte Zeit bei 10.9.2 bleibe, es andere Teile des Systems wie App Store-Updates und dergleichen ruinieren würde.
Meine Idee ist jetzt, zu versuchen, eine Methode oder ein Tool zu finden, um die App daran zu hindern, überhaupt vollständig lesen zu können SystemVersion.plist
- stellen Sie sich das als "Dateisystem" -Version von Little Snitch vor , wenn Sie so wollen - nur eine Möglichkeit, benutzerdefinierte zu erstellen Regeln für bestimmte Prozesse, die den Lese- und/oder Schreibzugriff auf bestimmte Dateien/Ordner im System verbieten.
Vielleicht würde es nur dazu führen, dass die App einen Fehler auslöst und überhaupt nicht läuft (ich könnte dies wahrscheinlich testen, indem ich die plist-Datei vorübergehend für nur 30 Sekunden in den Papierkorb verschiebe, während ich versuche, sie zu installieren/auszuführen) - aber in beiden Fällen denke ich Es ist eine wirklich nützliche Sache, die Sie für leistungsstarke Sicherheitszwecke haben können – genau wie die benutzerdefinierte Blockierung des Netzwerkzugriffs für Apps in Little Snitch .
Gibt es also ein großartiges Drittanbieter-Tool oder sogar ein natives OS X / Xcode-Tool, das dies kann? Irgendwelche Erkenntnisse darüber, was überhaupt passieren müsste, system-/programmierungstechnisch? Durch das Optimieren mit „Sharing & Persimmons“ für eine Datei im Finder kann ich den Benutzerzugriff steuern , aber nicht verarbeiten.
Sie könnten einfach die integrierten Sandboxing-Funktionen von Mac OS X verwenden.
Erstellen Sie ein benutzerdefiniertes Profil, das den Zugriff auf die Datei „SystemVersion.plist“ einschränkt, indem Sie eine Syntax wie die folgende verwenden:
(version 1)
(deny file* (literal "/System/Library/CoreServices/SystemVersion.plist"))
(allow default)
Speichern Sie das zum Beispiel als ~/myprofile.sb und führen Sie dann Ihr Programm wie folgt aus:
sandbox-exec -f ~/myprofile.sb "/Application/My Program.app/Contents/MacOS/My Program"
SystemVersion.plist
, wie ich vermutet habe. Aber zumindest skizzieren wir jetzt das grundlegende Verfahren für dieses wirklich coole allgemeine Sicherheitsfeature; Mit anderen Apps hat das wunderbar funktioniert! Trotzdem wäre es gut, Ihre Idee der Sandboxing-Systemeinstellungen selbst auszuprobieren. Aber als ich es versuchte ( sandbox-exec -f ~/myprofile.sb "/Applications/System Preferences.app/Contents/MacOS/System Preferences"
), warf es auch die Abbruchfalle 6 - irgendwelche Ideen?(allow default)
funktioniert einfach gut !! Was gut ist (denke ich) - Junge, du bist bis jetzt auf dem ganzen Weg genau richtig! Du bist ein Guru!!! Ich lerne auch so viel, danke. Also weiter zur Named-Pipes-Idee (und wieder sollte ich dies zuerst auf dem Installer .app der App testen) - welche wenigen Befehle würde ich tun, um das einzurichten? Habe ein bisschen gegoogelt und brauche eine Anleitung, wie es geht :). Danke. Ich werde jetzt weiter googeln, fühle mich aber ein bisschen in der Tiefe (das ist wirklich fortgeschrittenes, obskures Zeug) und möchte auf keinen Fall die Dinge vermasseln ... es wird sowieso gut sein, das alles zu dokumentieren.Die Hands Off -App hat diese Funktion:
Festplattenzugriff überwachen
Auf Ihrem Computer vorhandene Anwendungen können ohne Ihr Wissen Informationen auf Ihrem Computer lesen, speichern oder löschen. Mit Hands Off! können Sie den Festplattenzugriff von allen Anwendungen überwachen und steuern, um zu verhindern, dass sie vertrauliche Informationen erhalten, Ihre Daten löschen oder Cookies speichern.
Und es enthält zufällig die Netzwerk-Firewall-Funktion von Little Snitch.
https://www.macworld.com/article/3190149/little-flocker-reincarnates-at-f-secure-in-free-beta.html :
Little Flocker, ein Tool, das den Zugriff von Apps und Systemprozessen auf Dateien ohne Erlaubnis einschränkt. Er konnte keine Details nennen, aber kürzlich gab F-Secure, ein führendes Sicherheitsentwicklungs- und Analyseunternehmen, den Kauf von Little Flocker bekannt, das in Xfence umbenannt wurde.
MacOS Catalina hat jetzt diese ähnliche Funktion:
Datenschutz
macOS Catalina prüft mit Ihnen, bevor einer App der Zugriff auf Ihre Daten in Ihren Ordnern „Dokumente“, „Desktop“ und „Downloads“ gestattet wird. iCloud-Laufwerk; die Ordner von Cloud-Speicher-Drittanbietern; Wechselmedien; und externe Volumes. Darüber hinaus werden Sie gefragt, bevor eine App eine Tastenprotokollierung durchführen oder eine Standbild- oder Videoaufzeichnung Ihres Bildschirms aufnehmen kann.
njboot
Benutzer46942
Benutzer46942
Info.plist
als auchInfo.plist
in der verschachtelten .app-Datei, gibt es keine solche Zeichenfolge. Ursprünglich ohnehin in der Installationsdatei danach gesucht, schien sich der Code zum Überprüfen der Betriebssystemversion im Installationsprogramm in der kompilierten ausführbaren Mac-Datei selbst zu befinden.njboot
Benutzer46942