2016-07-11 15 views
-2

Ich bin mit den öffentlichen statischen Felder in meinem C# Anwendung:Hack öffentlichen statischen Felder eines laufenden .net-Anwendung, wenn Sie nicht den Quellcode

Ist ist möglich, für jemanden, der nicht den Quellcode hat von die App (verschleiert), um diese Felder bei der Anwendung zu ändern Laufzeit? (Zum Beispiel mit der Anfüge-Funktion des VS)

+0

Wenn sie öffentlich sind, kann jemand auf Ihre App verweisen und tun, was sie wollen, auf die Felder. Machen Sie sie nicht öffentlich, wenn Sie nicht möchten, dass Personen darauf zugreifen. Aber das ist eine ganz andere Frage .... –

Antwort

2

Ja, sie müssen nicht einmal einen Debugger anhängen. Da die Felder öffentlich sind, müssen Sie nur Ihr Programm als Referenz hinzufügen, dann können Sie einfach Ihre Hauptfunktion von ihren aufrufen und sie können alle öffentlichen Variablen so verändern, wie sie wollen.

+0

wird interner Modifikator sie schützen? – Jalil

+1

Von diesem speziellen Fall, ja, aber wenn jemand herausfindet, was der Name des Feldes ist, können sie nur Reflektion verwenden, um auf ein internes, geschütztes oder privates Feld zuzugreifen. –

+0

auch wenn die Baugruppe verschleiert ist? – Jalil

0

Während ich das persönlich noch nie probiert habe, würde ich mir vorstellen, dass man die DLL mit .NET Reflector dekompilieren und dann gegen den laufenden Prozess mit dem neu erstellten "Quellcode" debuggen kann.

0

Mit etwas wie dotPeek und das Hinzufügen eines Debuggers sollte es möglich sein. Zumindest wird es wegen der Verschleierung nicht einfach sein.

Hoffe es hilft!