Hallo,
ich versuche ein selbst geschriebenes vor den ersten Blicken zu schützen, indem ich es verschlüsselt
als Ressource in ein Starterprogramm einbinde und zu Laufzeit wieder entschlüssle und aufrufe.
Allerdings gibt Kaspersky bei MethodInfo.Invoke eine Heuristik-Warnung aus:
HEUR:Trojan.Win32.Generic
Kann man das irgendwie verhindern, weil sonst jeder denkt, dass das ein Virus wäre?
Grüße
Let it Burn
Hallo Let it Burn,
(hier im Forum wurde des Öfteren darüber gesprochen)
siehe [FAQ] NET Assembly vor Disassembling schützen (Obfuscator).
Allerdings gibt Kaspersky bei MethodInfo.Invoke eine Heuristik-Warnung aus
Wirklich alleine durch das MethodInfo.Invoke? Oder daher, dass Method.Invoke für Code aufgerufen wird, der (verschlüsselt) aus den Ressourcen geladen wurde?
Kann man das irgendwie verhindern, weil sonst jeder denkt, dass das ein Virus wäre?
Ich denke, dass man das nicht verhindern kann, denn du programmierst damit nunmal ein Verhalten, dass auch bei Schadsoftware verbreitet ist. Und solange du das tust, musst du immer damit rechnen, dass die Heuristikprüfung von Anti-Viren-Programmen Alarm schlägt. Selbst wenn du durch einen Trick den Alarm von Kaspersky verhindern könntest, könntest du dir nicht sicher sein, bei dem nächsten Virenprüfer (nach dem nächsten Update) alles unbeanstandet durchläuft.
herbivore
Aber warum schlägt nur Kaspersky aus und der Rest nicht?
Hier mal ein VirusTotal Scan von meinem Programm:
https://www.virustotal.com/de/file/826067a5160d8df89de5dab620f99a578a5837d452c02af0ca705c74b5b8bd2c/analysis/1366631066/
Edit: Wie sieht das mit dynamischem Laden von DLLs aus? Schlägt der Scanner dann auch Alarm?
Keiner wird Dir je sagen welche Verfahren ein Virenscanner genau nutzt, um Schadsoftware zu erkennen.
Was die Frage mit dem dynamischen Laden soll weiß ich nicht, denn dies ist ein Standardverhalten von Anwendungen.
Wenn Deine Anwendung ach so geheim ist, dann solltest Du von .NET Abstand nehmen und auf C/C++ wechseln. Wenn sich jemand damit auskennt und an Deinen .NET Code will, dann kommt der auch ran.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Es geht im Grunde nur um Klassenkameraden, die hätte ich mit meiner Methode schon genug beschäftigt, dass sie keine Lust haben weiter zu probieren.
Würde das gehen, wenn ich mein Programm als DLL kompilier und es es dann entschlüssel und dynamisch einbinde, würde das gehen?
Hallo Let it Burn,
ich hoffe, du beschäftigst uns hier nicht, weil du deinen Klassenkameraden mit einem Scherzprogramm einen Streich spielen willst. Denn wenn es nur um die Herausforderung ginge, sie deine Sicherung knacken zu lassen, wäre es ja egal, wenn der Virenwächter Alarm schlägt. Sie wüssten dann ja warum. Das du echte Schadsoftware erstellen willst, will ich dir gar nicht unterstellen, aber sollten wir tatsächlich eine Lösung finden, könnten andere das Wissen dazu nutzen. Dual-use-Technologie quasi.
Davon abgesehen ist ohnehin alles gesagt. Immer wenn du ein Verfahren verwendest, dass auch bei Schadsoftware verbreitet ist, besteht die Möglichkeit, dass Virenwächter anschlagen. Und verschlüsselten Code zur Laufzeit zu entschlüsseln und nachzuladen, gehört eindeutig dazu.
herbivore