4 Stimmen

Können Sie Obfuscate LinqToSql Assemblies mit .net Reaktor ohne sie zu brechen?

Ich verwende .net Reactor, um eine Datenschicht-Assembly mit LinqToSql-Klassen zu verschleiern. Beim Aufrufen der Assembly erhalte ich den folgenden Fehler

Unzulässige Speichereigenschaft: '_ApplicationId' auf Mitglied 'RCSQLData.Application_DB.ApplicationId'

Ich verwende den Modus "Bibliothek" und habe "Necrobit" und "Obfuscation" aktiviert.

Ist es möglich, LinqToSQL-Klassen zu verschleiern oder ist es die alte Reflexion Walnuss wieder?

Michael

3voto

logicnp Punkte 5756

Sein, weil LINQ-toSQL verwendet Reflection sehr stark. Es kann nicht die ursprünglichen Eigenschaften finden, weil es versucht, für sie durch ihre ursprünglichen Namen (die jetzt verschleiert sind) zu suchen.

Die Lösung besteht darin, die entsprechenden Klassen/Mitglieder von der Umbenennung auszuschließen. Einige wie z.B. Krypto Obfuskator erledigt all dies automatisch für Sie, indem es die Verwendung von LINQ-SQL in Ihrem Code erkennt.

1voto

GONeale Punkte 25883

Rufen Sie die geschützte Assembly in dem Code auf, der sie verwenden möchte? (d. h. verweisen Sie auf die geschützte .dll?)

Ich verwende auch .NET Reactor, aber im "Anwendungsmodus" und schütze eine .exe mit zusätzlichen Assemblies und es funktioniert gut. Ich wähle jedoch meine Hauptbaugruppe aus und gebe zusätzliche Satelliten-DLLs an, die verwendet werden sollen, und die Baugruppe wird zusammengeführt und auf einen Schlag geschützt.

Ich glaube nicht, dass Sie in der Lage, einen Verweis auf eine geschützte .dll hinzufügen, das ist die Idee dahinter, wie es müsste auf sie zu reflektieren. Ich werde mehr über den Bibliotheksmodus lesen und mich bei Ihnen melden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X