2016-12-15 4 views
1

Ich habe ASP.Net Core 1.0.1-Projekt, in dem ich einige Zeichenfolgen versteckt. Die Zeichenfolgen sind private statische Felder. Obfuscar 2.2.3 soll standardmäßig Strings verbergen, tut es aber nicht. Ich habe auch versucht, diese Konfiguration mit expliziten Werte:Verstecke Strings in. NET-Core-Projekt

<Var name="HideStrings" value="true" /> 
<ForceStringHiding type="MyNamespase" /> 

Aber Saiten sind über dotPeek noch sichtbar.

Vielleicht habe ich etwas falsch verstanden? Wie kann ich meine Fäden verbergen?

+0

Das Ausblenden von Strings wurde in Version 2.2.3 vollständig deaktiviert. Https://github.com/lextm/obfuscar/commit/f364a38d511e9b77fd875dee5acb54e57cbe1c45 Wie die folgende Antwort zeigt, ist der Prozess reversibel. Verwenden Sie ihn also nie, um geheime Informationen zu verbergen. Sie sollten sich auf andere Windows/OS-Mechanismen verlassen, um vertrauliche Daten zu speichern. –

Antwort

3

Sie können nichts "in app/library" "zuverlässig verstecken", während Ihre App in der Lage sein muss, es zu "entschlüsseln".

Jeder "geheime Algorithmus", den Sie erfinden, ist nutzlos, weil alles, was es "entschlüsseln" musste, in der App enthalten ist (sonst kann Ihre App selbst nicht "entschlüsseln"), also jeder Bösewicht, der Zugang zu Ihrem app exe/dll kann diese Schritte "wiederholen" und den versteckten Wert "entschlüsseln".

Wenn Sie Server/Computer "vertrauen", auf dem Ihre App läuft, und einige Zeichen nur von Personen "verstecken" möchten, die Ihre App aus einer Zwischenquelle "kopieren" können (z. B. zip distrib von github repo herunterladen) dann sollten Sie Bibliothek oder ähnliches verwenden.

Wenn Sie dem Server, auf dem Ihre App läuft, nicht "vertrauen", sollten Sie den Server/Provider wechseln.