Boîte à outils d'obfuscation de preuve de concept pour les outils de post-exploitation en C#. Elle effectuera les actions suivantes pour un projet Visual Studio C#.
Modifier le nom de l'outil
Modifier le GUID du projet
Obfusquer les chaînes compatibles dans les fichiers de code source en fonction de la méthode d'obfuscation saisie par l'utilisateur
Supprime les commentaires sur une ligne (ex: // ceci est un commentaire)
Supprime l'option de chaîne PDB pour l'assembly .NET de version release compilée
Les chaînes candidates suivantes ne sont pas incluses dans l'obfuscation
Chaînes de moins de 3 caractères
Chaînes utilisant l'interpolation de chaîne (par ex., Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");)
Les instructions case car elles doivent être des valeurs statiques
Les variables const car elles doivent être des valeurs statiques
Les chaînes dans les signatures de méthode car elles doivent être des valeurs statiques
Ligne avec " => " utilisée dans une instruction switch et doit être une valeur statique.
dans une instruction if lors d'une comparaison car les valeurs comparées doivent être statiques
is
Chaînes à l'intérieur d'expressions régulières
Les chaînes override car elles doivent être des valeurs statiques
Les cas particuliers aléatoires suivants pour les chaînes, car ils ont causé des problèmes lors du codage/décodage
Chaîne commençant ou se terminant par '
""' dans la ligne
+ @" dans la ligne
""" dans la ligne
"" dans la ligne
Encoding.Unicode.GetString dans la ligne
Encoding.Unicode.GetBytes dans la ligne
Encoding.ASCII.GetBytes dans la ligne
Ligne commençant par " et se terminant par ")]. Cela est généralement utilisé pour les commutateurs de ligne de commande et doit être une valeur statique.
Informations de prise en charge
Windows
Linux (systèmes basés sur Debian)
Python3
Arguments/Options
-d, --directory - répertoire où se trouve votre projet Visual Studio
Statistiques de détection basée sur les signatures
Le tableau ci-dessous montre les statistiques de détection basée sur les signatures entre les versions non obfusquées et obfusquées de 20 outils C# publics populaires avec InvisibilityCloak.
Ceci est spécifiquement pour Microsoft Defender (version gratuite), et exact au 14 avril 2022.
Le tableau ci-dessous montre les tailles de fichiers de 20 outils C# publics populaires entre les versions non obfusquées et obfusquées en utilisant InvisibilityCloak avec diverses méthodes d'obfuscation de chaînes.