Ja, das ist wohl richtig. Wollte damit hauptsächlich sagen, das die foo.dll definitiv keine native dll ist, da ich den Code mit dotPeek lesen kann.
Also konnte der RC in Sachen native mehr? Kann man sich den noch irgendwo runterladen?
Danke für deine Antwort. Dem Artikel bin ich ebenfalls gefolgt. Hier mal meine Ansätze (bat Datei):
Mit publish\foo.exe:
C:\Users\%USERNAME%\Desktop\foo\bin\release\netcoreapp1.0\win81-x64\publish\crossgen.exe /Platform_Assemblies_Paths "C:\Users\%USERNAME%\Desktop\foo\bin\release\netcoreapp1.0\win81-x64\publish" foo.exe
pause
Als Konsolenausgabe erhalte ich:
Microsoft (R) CoreCLR Native Image Generator - Version 4.5.22220.0
Copyright (c) Microsoft Corporation. All rights reserved.
Error compiling foo.exe: The image being compiled is not a .NET assembly (Except
ion from HRESULT: 0x80131F0B)
Error: compilation failed for "foo.exe" (0x80131f0b)
Mit publish\foo.dll:
C:\Users\%USERNAME%\Desktop\foo\bin\release\netcoreapp1.0\win81-x64\publish\crossgen.exe /Platform_Assemblies_Paths "C:\Users\%USERNAME%\Desktop\foo\bin\release\netcoreapp1.0\win81-x64\publish" foo.dll
pause
Als Konsolenausgabe erhalte ich:
Microsoft (R) CoreCLR Native Image Generator - Version 4.5.22220.0
Copyright (c) Microsoft Corporation. All rights reserved.
Error compiling foo.dll: The image being compiled is not a .NET assembly (Except
ion from HRESULT: 0x80131F0B)
Error: compilation failed for "foo.dll" (0x80131f0b)
Laut dotPeek ist foo.exe tatsächlich keine .NET assembly, foo.dll hingegen aber schon. In foo.dll steht mein programmierter Hello World Code.
Was mache ich falsch?
Guten Tag,
ich versuche eine simple Hello World .NET Core Anwendung mit crossgen nativ zu kompilieren. Dazu bin ich folgendem Tutorial gefolgt:
.NET Core Application Deployment:
https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index#crossgen
Ich habe das Projekt "foo" angelegt und einen release build für win81-x64 mit dotnet publish erzeugt. Nun ist die foo.exe aber noch MSIL und ich möchte sie wie beschrieben mit crossgen nativ kompilieren. Allerdings steht in dem Artikel weder wo ich crossgen finde, noch wie ich es benutze.
Mit der Windows 8.1 Suchfunktion habe ich eine crossgen.exe in
C:\Users%USERNAME%.nuget\packages\runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR\1.0.2\tools\
gefunden. Ist es das richtige Programm? Wie benutze ich es richtig? Ich habe einige Sachen über die Konsole versucht, aber ohne Erfolg.
Mfg,
PsyPath
Habe die .NET Native Preview vor etlichen Monaten mal ausprobiert und weiß, das es irgendwann für Desktop-Anwendungen erscheinen soll, allerdings glaube ich das das noch lange dauern wird. Ich hoffe allerdings das du Recht hast und .NET Native sehr bald kommt. Bis dahin brauche ich aber trotzdem noch einen Obfuscator wie beschrieben.
@Sclot: Ich habe mir mal die Demo-Version heruntergeladen und ein Projekt damit verschleiert. Die exe wurde tatsächlich nicht als Virus erkannt. Danke für den Tipp. Leider kann ich mit der Demoversion weder merge, noch embed benutzen. Es kommt immer die Meldung das die Funktion in der Demo-Version nicht vorhanden ist. Wärst du so nett ein Projekt mit dieser Library zu erzeugen (http://scintillanet.codeplex.com/) [Einfach eine Scintilla-Box auf eine Formsfläche plazieren reicht], es in x64 zu kompilieren und dann mit Babel zu verschleiern und zwar mithilfe des Packers: Also die ScintillaNET.dll und die SciLexer64.dll in die exe packen. Die Output exe dann mit https://www.virustotal.com/ auf Viren prüfen und hier im Forum Bescheid geben, ob ein Virus erkannt wurde? Möchte gerne vor dem Kauf sichergehen, das nicht der Packer zu einer Viruserkennung führt.
@Abt: Ich glaube bis .NET Native rauskommt, wird noch eine Menge Zeit vergehen.
Hallo zusammen,
ich suche einen guten Obfuscator, der verwendete dlls in meine exe hineinpacken kann und dabei den ganzen Code verschleiert. Ich benutze schon einige Zeit den Confuser (https://confuser.codeplex.com/). Die Verschleierung ist super, allerdings erkennen einige AntiVirusprogramme meine Programme fälschlicherweise immer als Virus an (Auch mit Einstellung Minimum). Unter anderem mit dieser Seite getestet https://www.virustotal.com/de/. Selbst ein komplett neu erstelltes Programm ohne eigenen Code wird nach der Kompilierung+Verschleierung als Virus erkannt. Ich habe auch schon eine Menge andere Obfuscatoren ausprobiert wie z.B. den .NET Reactor oder SmartAssembly. Leider haben alle das gleiche Problem. Die Viren die erkannt werden und welche AntiVirusprogramme erkennen variiert nur. Bin schon ziemlich am verzweifeln. Solche Assemblys mag ich echt ungern anbieten, aber komplett ohne Schutz möchte ich diese auch nicht anbieten. Lieber hätte ich eine kostenlose Variante, aber wenn es nur eine kommerzielle Variante tut, dann geht das auch in Ordnung. Hoffe ihr könnt mir helfen. Vielen Dank im Voraus.
Mfg,
PsyPath