Wie kann ich den Quellcode einer Anwendung einsehen?

Wie kann ich den Quellcode einer Anwendung einsehen?

Ich versuche, mir verschiedene Anwendungen auf meinem Macbook anzusehen und ihren Quellcode anzuzeigen, um besser zu verstehen, wie bestimmte Anwendungen erstellt werden und welche Sprachen/Frameworks sie verwenden. Vielleicht rührt meine Verwirrung teilweise daher, dass ich nicht über ausreichende Kenntnisse der Anwendungsinfrastruktur verfüge.

Ich habe jedoch mehrere Apps auf meinen Computer geladen, ihre Inhalte per CD geöffnet und jedes Verzeichnis durchgesehen, das ich finden konnte, aber ich kann anscheinend keinen tatsächlichen Quellcode finden. Ich finde nur CodeSignature-Dateien, CodeResource-Dateien und etwas Code wie .plist-Dateien. Wie finde ich die .js/.py/.c/.cpp-Dateien?

Ich frage mich, ob diese Dateien aus Sicherheitsgründen/um geistiges Eigentum zu schützen, irgendwie verschlüsselt werden. Aber wenn das der Fall ist, was liest mein Computer, um diese Anwendungen auszuführen?

Jede Einsicht wird sehr geschätzt!

Antwort1

Programme können interpretiert werden (der Quellcode wird analysiert und „on the fly“ in Anweisungen auf Systemebene umgewandelt, jedes Mal, wenn die Anweisung benötigt wird) oder kompiliert werden (der Quellcode wird EINMAL analysiert und in Anweisungen auf Systemebene umgewandelt und die Anweisungen auf Systemebene werden für die spätere Verwendung und Wiederverwendung gespeichert). Wenn eine Anwendung in einer Sprache geschrieben ist, die normalerweise kompiliert wird – C, C++, C#, Pascal usw. –, können Sie den Quellcode nicht sehen. Er muss nicht auf Ihrem Computer installiert sein, damit das Programm ausgeführt werden kann, sondern nur die Anweisungen auf Systemebene (dies wird in Windows als EXE-Datei bezeichnet).

Andere Sprachen wie ECMAscript, PowerShell, Perl, Python, Ruby usw. werden interpretiert, und für diese können Sie den Quellcode normalerweise finden, indem Sie sich die installierten Dateien ansehen.

Beachten Sie, dass einige Implementierungen einiger interpretierter Sprachen auch "Wrapper" zulassen, bei denen der Quellcode in eine "codierte" Form (z. B. Base64) konvertiert und an einen angepassten Interpreter angehängt wird, sodass ersieht ausfür den Benutzer wie ein kompiliertes Programm (d. h. eine EXE unter Windows). Wenn Ihre Anwendung mit einem dieser Programme erstellt wurde, können Sie den Quellcode nicht so leicht finden.

Antwort2

Eine App enthält keinen Quellcode.

Sie sindzusammengestelltvom Quellcode in eine tatsächlich ausführbare Datei – wenn Sie in TheApplication.app/Contents/MacOS/TheApplication nachsehen – ist dies die kompilierte App selbst. So ziemlich alles andere, was Sie dort sehen, ist entweder eine Bibliothek, von der die App abhängig ist, oder eine einfache XML-Datei im Klartext, um Dinge wie Sprachänderungen usw. zu steuern.

Beachten Sie auch, dass Sie, wenn Sie eine App eines anerkannten Entwicklers, aus dem App Store usw. manipulieren, diese möglicherweise als nicht mehr mit der Codesignatur übereinstimmend markieren und sie in den Papierkorb legen und das Original erneut herunterladen müssen. macOS wird immer strenger, was die Manipulation von Apps angeht.
Catalina wird in dieser Hinsicht noch strenger sein und nicht nur die Codesignatur verlangen, sondern auchBeglaubigung, wodurch eine Änderung der App durch Dritte nahezu unmöglich wird.

Antwort3

Wenn Sie eine binäre/ausführbare Datei zurückentwickeln möchten, haben Sie die Möglichkeit,Ghidra. Auf YouTube gibt es einige Tutorials von unabhängigen Entwicklern, die Ihnen den Einstieg erleichtern (Ich fand das hier zugänglich).

Wie bereits in den anderen Antworten erwähnt, sind die Dateien bei kompilierten Sprachen (z. B. *.cpp, *.c, *.java) nicht sofort verfügbar, Sie müssen also ein wenig suchen.

verwandte Informationen