Ich habe eine .NET DLL und Anwendung. Die DLL wird in C ++ / CLI geschrieben und ist "gemischt", d. H. Teilweise verwalteter Code und teilweise nativ.
Ich habe zwei Ziele:
1. Verwischen Sie den gesamten verwalteten Code, damit er nicht deinstalliert werden kann
2. Verschleiern Sie die öffentlichen Methoden / Klassen der gemischten DLL, damit niemand die DLL in ihren eigenen Anwendungen verwenden kann, d. H. Die öffentlichen Namen verschlüsseln.
Ja, ich verstehe, dass Verschleierung nicht perfekt ist und die Leute es immer noch herausfinden können und bla bla. Die zwei Ziele sind eine Managementanforderung. Die einzige App, die ich gefunden habe, ist die Dotfuscator Professional Edition. Leider ist es eine dieser unglaublich nervigen Apps, bei denen man einen Verkäufer um einen Preis bitten muss. Weiß jemand von einer anderen Lösung oder weiß von einem guten Ort, um eine billige, legale Kopie zu kaufen?
Sagen Sie mir nicht, dass ich die DLL in verwaltetem Code umschreiben soll, das würde einen Monat dauern und ich würde nie eine Genehmigung erhalten. : -)
Beachten Sie, dass ich nicht besonders paranoid darüber bin, wie gut die Verschleierung ist. Alles, was die Namen aller Methoden und Klassen in der App verwechselt, ist wahrscheinlich gut genug.
Hier sind die anderen Obfuscatoren, die ich ausprobiert habe:
Dotfuscator Community Edition wird mit Visual Studio 2008 ausgeliefert, unterstützt jedoch keine gemischten Assemblies.
Eazfuscator .NET ist einfach und kostenlos, unterstützt jedoch keine gemischten Assemblies.
{smartassembly} kostet $ 500 für eine einzelne Lizenz. Es hat einige interessante Eigenschaften, aber es unterstützt keine gemischten Baugruppen.
Salamander ist 800 $. Behauptungen, gemischte Assemblys vollständig zu unterstützen, aber wann immer ich versuchte, die verschleierte DLL zu verwenden, stürzte die Anwendung ab
Der .NET Reactor kostet $ 180 für eine einzelne Entwicklerlizenz. Es unterstützt "partielle" Verschleierung von gemischten DLLs. Leider, wenn Sie die öffentlichen Typen in der DLL verschleiern, funktioniert es nicht, die .exe kann die Klassen nicht finden. Es hat die Fähigkeit, DLLs in eine EXE zusammenzuführen / zu packen, aber wenn Sie es mit einer gemischten DLL machen, funktioniert es nicht (die EXE kann die Assembly der DLL nicht finden, obwohl sie Teil der .EXE ist)
Der Skater kostet $ 300 für eine einzelne Lizenz. Ich sehe nichts auf ihrer Website, die behauptet, dass sie gemischte Assemblys unterstützt, und ich habe es satt, Apps nur zu versuchen, um enttäuscht zu werden, also werde ich davon ausgehen, dass das nicht der Fall ist.
Ich habe auch Microsofts ILMerge ausprobiert, um zu sehen, ob ich die DLL mit der .exe verbinden und dann verschleiern könnte, aber es scheint, dass auch gemischte DLLs ersticken.
Irgendwelche Vorschläge für eine Alternative zu Dotfuscator oder einen guten Ort, um eine legitime Kopie zu kaufen? Ich fand ein paar No-Name-Seiten, die behaupteten, sie billig zu verkaufen, aber ich nehme an, das sind russische Raubkopien.
Ich habe mehrere Lösungen für das gleiche Problem versucht. Es gibt keine großartige Lösung für dieses Problem. LibZ ist eine gute Alternative zu ILMerge. Sie können wahrscheinlich niedlich mit nur die Baugruppen in die Ressourcen Ihres Programms packen und dann aus dem Speicher in Bezug auf die verbrauchten Baugruppen laden. Wenn Sie die ausführbare Datei zumindest verschleiern, würde dies noch eine weitere Ebene der Indirektion hinzufügen.
Ich habe {smartassembly} verwendet, um SlimDX und DirectShow.Net zusammen mit meinem .net-Programm zu verbinden. Beides wird mit C ++ / CLI geschrieben. Sie verschmolzen auf meiner Seite. Woher hast du den Hinweis, dass es gemischte Baugruppen nicht unterstützt?
BEARBEITEN: Ich bin mir nicht 100% sicher, da ich selbst nie C ++ \ CLI benutze, aber vorher habe ich reine C ++ - Anwendungen geschrieben. Dies ist, was ich sammle, in der AssemblyInfo.cpp-Datei von SlimDX gibt es eine Zeile, die die Assembly wie folgt konfiguriert:
%Vor%Ich nehme also an, dass es nicht verwalteten Code enthält. Oder vielleicht könnten Sie mir sagen, nach welcher Anzeige ich suchen soll, um zu zeigen, dass sie nicht verwalteten Code enthält.
Übrigens, ich benutze Version 3.0.3063 von {smartassembly}
Tags und Links .net obfuscation mixed