Wie Sie wissen, werden Xamarin-Projekte in die dot net dll Assembly kompiliert und in eine APK-Datei gepackt und können von Reflektoren wie DotPeek leicht wiedergegeben werden.
Meine erste Frage ist: Wie können wir unseren Code schützen?
Meine zweite Frage ist: Sind Obfuscator-Tools wie SmartAssembly in Xamarin-Projekten oder Xamarin-Projekten verwendbar? Werden sie nicht unterstützt?
Der beste Weg, Ihren .NET-Code (.DLLS) für APKs zu schützen, besteht darin, Vor der Zeit (AOT) compilation:
Die AOT-Kompilierung kompiliert den IL-Code (.dlls) Ihrer Anwendungen in native Anweisungen. Der endgültige Code, der in das APK gepackt wird, ist dann X86, Arm usw., anstatt verwalteter IL-Code.
Die AOT-Kompilierung ist nur in Enterprise- und höheren Lizenzen verfügbar.
Während AOT die Schwierigkeit des Reverse Engineering erhöht, ist es immer noch nicht 100% idiotensicher. Die endgültigen Binärdateien können weiterhin von einem gerooteten Gerät abgerufen und mithilfe von Software wie IDA pro zurückentwickelt werden. Es ist viel schwieriger als die Verwendung von DotPeek, aber es ist immer noch möglich.
Es ist auch wichtig, die Nachteile der AOT-Kompilierung zu beachten. Die Zeiten für die Erstellung von Anwendungen steigen erheblich, da jede von Ihrer App referenzierte Assembly kompiliert werden muss. Meine Erfahrungen haben gezeigt, dass Sie eine Steigerung der Build-Zeiten um 200% -300% erwarten sollten, wenn AOT aktiviert ist.
Außerdem wird durch die AOT-Kompilierung die endgültige APK-Größe erhöht.
Für Ihre erste Frage ist es möglich, einige Werkzeuge zum Verschleiern Ihres Xamarin-Codes zu verwenden. Zum Beispiel Crypto Obfuscator , Babel Obfuscator und Dotfuscator
Für Ihre zweite Frage scheint SmartAssembly-Verschleierung möglich zu sein. Überprüfen Sie den Windows Phone-Teil hier .
Dotfuscator hat Unterstützung für Xamarin und Anweisungen sind online (für Dotfuscator Professional oder die kostenlose Community Edition ) für die Integration. Im Wesentlichen ist der Prozess:
Vollständige Offenlegung: Ich arbeite für PreEmptive Solutions.
Es gibt keine Möglichkeit, Ihren Code zu 100% vor der Dekompilierung und Überprüfung zu schützen.
Sie könnten viel Zeit damit verbringen, alle Ihre Methoden und Variablen zu hashen und dann eine Menge Zeit damit verbringen, eine Art Anwendungsinterpreter zu erstellen, der Ihren verschleierten Code versteht, aber selbst das wird untersucht, untersucht und schließlich geknackt.
Siehe auch: Wie kann ich meine .NET-Assemblys schützen? von Dekompilierung?
Tags und Links android c# xamarin xamarin.android