Entwickler-Ecke
Programmierwerkzeuge - Verwendung des .NET Reflektor
DennisXX - Mi 17.08.11 10:45
Titel: Verwendung des .NET Reflektor
Hallo zusammen !
Ich beschäftige mich gerade zum ersten Mal mit dem .NET Reflector von Microsoft. Hierzu habe ich mir mal eine Exe-Datei von einem Programm angesehen, welches ich mir zuvor auf meinen Rechner installiert hatte.
Ich habe mir nun mal diese Datei angesehen und es kamen einige Fragen auf, vermutlich liegt es auch daran, dass ich mich zum ersten Mal mit dieser Software beschäftige.
Ich habe im Anhang mal einen Screenshot angehängt und würde hier gerne von euch wissen wollen, was genau diese einzelnen sichtbaren Symbole zu bedeuten haben.
Und kann ich mit dieser Software alle beliebigen Programme öffnen, oder nur diejenigen, die mit einer der Microsoftspezifischen Technologien entwickelt wurde?
Grüße
Dennis
norman2306 - Mi 17.08.11 15:28
Du kannst nur .NET Programme öffnen. Also Programme, die in .NET entwickelt wurden. Zu den Symbolen:
die Gelb-Blau-Lila-Symbole sind die VS-Symbole für Klassen. '.ctor' ist ein Konstruktor, also die Methode, die bei einem "new" aufgerufen wird. Die zwei rosa Würfel kennzeichnen eine Methode. "Base Types" beinhaltet die Typen, von denen diese Klasse abgeleitet wurde. "Derived Types" sind Typen, die von dieser Klasse ableiten. Dann gibt es noch blaue Würfel. Das sind Felder. Und dan noch etwas, das aussieht wie in Finger, der auf eine Karte zeigt. Das sind Properties - Eigenschaften.
Ralf Jansen - Mi 17.08.11 15:38
| Zitat: |
| Du kannst nur .NET Programme öffnen. Also Programme, die in .NET entwickelt wurden. |
Ergänzung: .... und bei denen der Hersteller keinen irgendwie gearteten Disassemblierungsschutz verwendet.
DennisXX - Do 18.08.11 08:23
Guten Morgen !
Ralf Jansen hat folgendes geschrieben : |
| Zitat: | | Du kannst nur .NET Programme öffnen. Also Programme, die in .NET entwickelt wurden. |
Ergänzung: .... und bei denen der Hersteller keinen irgendwie gearteten Disassemblierungsschutz verwendet. |
Meinst Du mit Disassembliersschutz so etwas wie eine Art Schutz vor Einsicht bzw. auch Schutz vor Kopieren des Codes? Wie kann ich mir das vorstellen, wenn ich ein C Sharp Programm mit dem .NET Reflector öffnen möchte, welches einen solchen Schutz eingebaut hat? Bekomme ich dann eine Fehlermeldung oder so etwas?
Viele Grüße
Dennis
Ralf Jansen - Do 18.08.11 08:38
| Zitat: |
| Bekomme ich dann eine Fehlermeldung oder so etwas? |
Kommt auf das verwendete Verfahren/Tool an. Der Schutz geht vom reinen unleserlich machen(obfuskieren). So das man denn Code zwar noch disassemblieren kann sich aber der Sinn nicht mehr oder nur noch schwer ergibt. Über einstreuen von nativem Code so das die Assembly nicht mehr von den Disassemblern erkannt wird. Bis zum verpacken der .Net Assembly in eine VM so das die eigentliche Anwendung zum disassemblieren nicht mehr erreichbar ist.
DennisXX - Do 18.08.11 08:49
Hallo,
Ralf Jansen hat folgendes geschrieben : |
| Zitat: | | Bekomme ich dann eine Fehlermeldung oder so etwas? |
Kommt auf das verwendete Verfahren/Tool an. Der Schutz geht vom reinen unleserlich machen(obfuskieren). So das man denn Code zwar noch disassemblieren kann sich aber der Sinn nicht mehr oder nur noch schwer ergibt. Über einstreuen von nativem Code so das die Assembly nicht mehr von den Disassemblern erkannt wird. Bis zum verpacken der .Net Assembly in eine VM so das die eigentliche Anwendung zum disassemblieren nicht mehr erreichbar ist. |
also ich muss ehrlich sagen, dass ich nur Bahnhof verstanden habe !
Gruß
Dennis
norman2306 - Do 18.08.11 08:57
Oder man kompiliert seine .NET-Applikation gleich in nativen Code (z.B. mit Salamander). Dass macht sie schneller und sie kann nicht mehr dissambliert werden... aber so Detailreich wolltest du es wahrscheinlich garnicht wissen:)
Also, es gehen alle .NET Assemblies. Für Obfuskierte gibt es Deobfuskator-Tools. Alles was mit Unmanaged-Code arbeitet, kann nicht gelesen werden.
DennisXX - Do 18.08.11 09:33
Hallo !
Ihr werft mit Begriffen um euch, die ich gar nicht kenne und mit denen ich nichts anfangen kann, wie ´sie zu spezifisch sind.
Was genau ist denn nun ein Obfuskierter und ein Deobfuskator-Tool?
Ist es jetzt so, wie ich meine These aufgestellt habe:
Wie kann ich mir das vorstellen, wenn ich ein C Sharp Programm mit dem .NET Reflector öffnen möchte, welches einen solchen Schutz eingebaut hat? Bekomme ich dann eine Fehlermeldung oder so etwas?
Gruß
Dennis
norman2306 - Do 18.08.11 09:40
Wenn es eine native Assembly ist, also eine, die in Maschinencode vorliegt, bekommst du eine Fehlermeldung, dass dies keine gültige Assembly ist.
Wenn sie obfuskiert ist, dann ist der Code einfach so umgebaut, dass man ihn nicht mehr oder nur sehr schwer lesen kann. Es gibt Tools, die das erledigen. Du kannst die Assembly dann zwar öffnen, aber du siehst nur noch Nudelsalat.
Ralf Jansen - Do 18.08.11 09:56
| Zitat: |
Ihr werft mit Begriffen um euch, die ich gar nicht kenne und mit denen ich nichts anfangen kann, wie ´sie zu spezifisch sind.
Was genau ist denn nun ein Obfuskierter und ein Deobfuskator-Tool? |
Klar muss man bzw. kann man nicht alles kennen. Wenn du die relevante Begrifflichkeit genannt bekommst könntest du aber auch selber darauf kommen das mal schnell z.B. in
Wikipedia [
http://de.wikipedia.org/wiki/Obfuscator] nachzuschlagen wenn dir das rein gar nichts sagt. Sonst erklären wir nur Begriffe mit Begriffen die dir auch nichts sagen und wir drehen uns im Kreis. Darum bitte kurz selbst versuchen herauszufinden worum es geht und dann wenn nötig konkretere Fragen stellen die sich nicht so einfach per Wiki, Google etc. lösen lassen ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!