Laden...

Wieso kann ich .NET Framework decompilen aber nicht .NET Core?

Erstellt von Lucius vor 3 Jahren Letzter Beitrag vor 3 Jahren 683 Views
L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren
Wieso kann ich .NET Framework decompilen aber nicht .NET Core?

Hallo, es gibt viele Tools die den Code Sicherer machen können, allerdings geht es mir hier nicht darum ein tool zu finden, sondern stelle mir eher die frage, warum eine Anwendung in .Net Core nicht Lesbar ist aber in Net. Framework?

Ich habe einige Decompiler Tools ausprobiert, um DotNetCore Anwendungen auszulesen, bei allen hatte ich nur wirres Zeug. Vielleicht kann mich ja jemand hier erklären, warum das so ist?

Liebe Grüße
Lucius

16.830 Beiträge seit 2008
vor 3 Jahren

Hallo Lucius,

für alle Programmiersprachen, die Zwischensprachen verwenden, gibt es keinen 100%tigen Schutz gegen das decompilen.
Das ist der Funktionsweise geschuldet.

.NET Core verhält sich nicht hier anders wie .NET Framework; in beiden Fällen ist MSIL die Zwischensprache.
Wenn Dein Tool für .NET Core nur Salat erzeugt, dann liegt das am Tool.
ILSpy kann problemlos .NET Core / .NET Standard Assemblies lesbar machen; und das auch bereits für .NET 5.

Es gibt nur eine einzige Möglichkeit .NET Output "zu schützen" und das ist .NET Native, das jedoch nur für sehr sehr wenige Anwendungsfälle funktioniert.

Wenn es um den Schutz allgemein ist, was der Titel ("Schutz vor decompilen") suggeriert:
Wir hatten das Thema schon mehrere hunderte Mal und es gibt hier im Forum auch entsprechende FAQ Artikel.
Hättest vorher einfach mal einen Blick rein werfen können 😉
=> [Hinweis] Wie poste ich richtig? Punkt 1.1: Erst in die FAQ schauen.

Code vor unerlaubten Zugriff schützen

PS: ich hab den Titel so geändert, dass er der Frage Deines Beitrags entspricht.

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Hallo, das verlinkte Thema kenne ich bereits. Nur dort läuft man im Kreis 😃

Du sagst das der ILSpy eine DotNet Core Anwendung Decompiler kann?
Er zeigt bei mir ein Fehler an:

liebe grüße
Lucius

16.830 Beiträge seit 2008
vor 3 Jahren

Du hast hier offenbar eine Assembly - leider kaum zu erkennen weil Du nen unscharfes Bild hochgeladen hast statt die Inhalte einfach als Text zu quoten - die keine PE Informationen enthält.
Nimm ein Tool wie PEiD, um mehr Infos zu bekommen.

Auch .NET Assemblies können den Fehler werfen; wenn sie packed sind; also die Assembly einer zusätzlichen Kompression (meist LZ4) unterzogen wurde.
Sehr oft der Fall bei System-Assemblies oder sowas wie zB. Xamarin und Co.

Dann muss man die Assembly erst dekomprimieren und kann sie dann wieder mit ILSpy lesen.
ILSpy unterstützt derzeit kein unpack aka decompress..

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Hier nochmal in Schöner 😃

Wie kann ich die Assembly dekomprimieren?

16.830 Beiträge seit 2008
vor 3 Jahren

Brauchst kein Bild einhängen wenn Du einfach Text schreiben würdest.
Text wäre später auch für andere über die Suche auffindbar; Bilder kann man leider nicht auf die Art durchsuchen... 😉

Auf die Art wird dieser Thread halt niemals auffindbar sein, wenn jemand nach > Fehlermeldung:

PEFileNotSupportedException sucht.

Dekompression erster Google Treffer How to decompress a Fody.Costura packed assembly 😉

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Da hast du recht, beim nächsten Mal schreibe ich es hin 😃

Aber zu gern wüsste ich was dies jetzt bedeutet: PEFileNotSupportedException

Und wie kann ich trotzdem die Anwendung decompilen?

16.830 Beiträge seit 2008
vor 3 Jahren

Das ist halt die Exception Klasse, die ILSpy wirft, wenn PE Informationen im Header fehlen.
Auch hier hätte Dir einfach Google geholfen: PEFileNotSupportedException im ILSpy Source.

Und wie kann ich trotzdem die Anwendung decompilen?

  • Manuell dekomprimieren
  • Unkomprimierte DLL einlesen

PS: in dem Link, den ich Dir gegeben hab zu StackOverflow, ist ein Tool verlinkt.
Wenn Du nich mal die Hilfe durchliest, die man Dir gibt... 😕

Übrigens hättest Du selbst einfach eine .NET Core Assembly erstellen können um zu prüfen, ob es am Tool oder an der Assembly liegt.
Dann hättest sofort gesehen, dass Deine .NET Core Assembly problemlos in ILSpy darstellbar gewesen wäre. Dann wäre die Frage auch eine ganz andere gewesen 😉

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Naja ich dachte, ein Forum ist dafür da um Fragen zu stellen? Da dieses Gebiet noch neu für mich ist, kann ich natürlich nicht vorher wissen wonach ich suchen muss. Ich habe bereits die Hilfe durch gesehen.

Verstehe nur nicht, warum mir so angegangen wird? Ich habe das Gefühl, das ich mit meinen Fragen hier jemanden belästige...

Naja gut, vielen Dank für deine Bemühungen.

Liebe Grüße
Lucius

16.830 Beiträge seit 2008
vor 3 Jahren

Die entsprechenden Aussagen sind lediglich Hinweise, wie Du selbst schneller und eigenständig an potentielle Antworten kommst => analytisches Vorgehen.
Hilfe zur Selbsthilfe.

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Das habe ich auch so verstanden. Man kann trotzdem nicht erwarten, das andere so lernen können wie du. Ich habe mich heute das erste Mal mit dem Thema beschäftigt.

Es ging mir auch nicht darum das du mir Links gepostet hast, sondern eher die Andeutungen bzw. Unterstellung das ich die Hilfe nicht gelesen habe.

Sei mir nicht böse, aber wenn man ein Slogan hat, das man Gemeinsam mehr erreichen kann, aber dann einem Unterstellt wird, das er nichts Liest, dann hat das wenig mit Gemeinsam zu tun.

Ich kann verstehen, das man ständig von Leute gefragt wird und manche sogar wollen das man den Code für Sie schreibt, das auch Foren oft deshalb ausgenutzt werden, nur das rechtfertigt ja nicht das Alle über einen Kamm scheren.

Ich hoffe, du kannst das etwas nachvollziehen.

Liebe Grüße
Lucius