Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

Reverse Engineering nativ kompilierter .NET-Anwendungen

Der slowakische Entwickler Michal Strehovsky gewährt einen Blick in die Interna von Anwendungen, die mit nativem AOT erstellt wurden.
Mit .NET 7 wurde ein neues Bereitstellungsmodell eingeführt: die native AOT-Kompilierung. Wird eine .NET-Anwendung mit nativem AOT kompiliert, wird sie zu einer eigenständigen nativen ausführbaren Datei mit einer eigenen minimalen Laufzeitumgebung zur Verwaltung der Codeausführung kompiliert. Diese Laufzeitumgebung ist recht klein und in .NET 8 ist es möglich, eigenständige C#-Anwendungen mit weniger als einem MByte zu erstellen.Es ist allerdings auch das erste Mal, dass .NET-Programme nicht in dem in ECMA-335 definierten Dateiformat (das heißt Anweisungen und Metadaten für eine virtuelle Maschine) verteilt werden, sondern als nativer Code (PE/ELF/Mach-O-Dateiformat), mit nativen Datenstrukturen wie zum Beispiel C++. Das bedeutet, dass keines der Reverse-Engineering-Tools für .NET, die in den letzten 20 Jahren entwickelt wurden, mit nativem AOT funktioniert. Entwickler Michal Strehovsky hat sich mit derart kompilierten .NET-Anwendungen näher beschäftigt und teilt seine Erkenntnisse in diesem Blogbeitrag.

Neueste Beiträge

Chunks mit Köpfchen - KI für KMU, Teil 1
Wie trenne ich Textinformationen in sinnvolle Segmente?
7 Minuten
Hierarchische Testdata-Builder - Testdata-Builder, Teil 1
Lesbare Tests bei tiefen Objekthierarchien mit dem Collection-Builder-Pattern.
4 Minuten
DDC hakt nach: Hör auf, Dich über Verbindungsstrings zu ärgern
Die App läuft lokal wie geschmiert, aber sobald Backend-Services ins Spiel kommen, stottert die Maschine. Connection Strings, die nicht wollen. Emulator-Konfigurationen, die nerven. Johan Smarius erklärt im Interview und auf der .NET Developer Conference 2025, wie es anders - und viel besser geht.
4 Minuten
10. Nov 2025
Miscellaneous

Das könnte Dich auch interessieren

Benchmark im Unit-Test-Stil - Best of NuGet, Teil 4
NuGet-Pakete können das Leben des .NET-Entwicklers sogar um neue Werkzeuge erweitern, die sich auf den Entwicklungsworkflow (und nicht den bearbeiteten Code) auswirken. Mit BenchmarkDotNet steht ein Musterbeispiel dieses Konzepts zur Verfügung, das die Überprüfung der Performance von Code aller Arten ermöglicht.
7 Minuten
16. Okt 2025
Attraktives GUI mit Spectre.Console - Best of NuGet, Teil 6
Mit der Bibliotheksfamilie Spectre.Console steht ein neues Produkt ante portas, das die Realisierung von visuell ansprechenden Kommandozeileninterfaces zu erleichtern sucht.
7 Minuten
29. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige