Advertisement
Tux_528

Leftovers Hunter Documentation (Français)

Jul 8th, 2023 (edited)
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.38 KB | Software | 0 0
  1. Instructions d'utilisation :
  2. ----------------------------
  3. - Étape 0 : pour garantir une recherche fiable et représentative de tous les restes, je vous recommande de suivre les manipulations suivantes :
  4.  
  5. -> faites une analyse anti-malware de votre configuration avec Malwarebytes et AdwCleaner pour supprimer les éventuels logiciels malveillants et indésirables que le script pourrait détecter à moitié, voire pas du tout ;
  6.  
  7. -> désinstallez tous les logiciels inutiles et obsolètes, de préférence avec un utilitaire spécialisé comme Revo Uninstaller Pro qui le fera très rapidement pour vous (n'hésitez pas à utiliser ma boîte à outils pour le télécharger et l'utiliser en quelques secondes 😉). En faisant ce premier nettoyage, vous éviterez ainsi de devoir refaire une recherche des restes si vous découvrez ensuite des logiciels à désinstaller que vous n'auriez pas identifié avant ;
  8.  
  9. -> fermez tous les logiciels en cours d'utilisation et en particulier les versions portables pour empêcher les faux positifs ;
  10.  
  11. - Étape 1 : lancez le script "Leftovers Hunter 0.X Beta.cmd" en tant qu'administrateur et patientez un peu. La recherche des restes prend généralement quelques minutes le temps que tous les recoins du système soient minutieusement analysés.
  12.  
  13. - Étape 2 : une fois la recherche terminée, appuyez sur une touche pour ouvrir une liste des noms des restes trouvés et examinez attentivement chaque ligne pour détecter la présence de faux positifs. Si vous constatez effectivement des erreurs dans cette liste, n'hésitez pas à les mettre en évidence avec un caractère spécial ou un texte informatif à côté de leur nom et à me faire parvenir vos modifications pour que je puisse essayer de corriger ces bugs et de détecter les logiciels concernés. N'hésitez pas à consulter la documentation interne du fichier pour en savoir plus.
  14.  
  15.  
  16. Fonctionnement détaillé du script :
  17. -----------------------------------
  18.  
  19. Fonctionnement technique :
  20. --------------------------
  21. Ce script traite progressivement chaque élément présent dans de multiples emplacements du disque et du registre pour vérifier si celui-ci correspond à un nom ou à un éditeur de logiciel installé. Il prend notamment en charge les dossiers très connus comme "Program Files" et "AppData", mais aussi de nombreux autres dossiers et clés du registre qui sont utilisés pour conserver des données logicielles sur le système.
  22. La version actuelle compte ainsi 22 emplacements minutieusement analysés, mais leur nombre augmentera progressivement au fil des mises à jour.
  23.  
  24. L'algorithme principal de ce logiciel se base sur le contenu d'un gros fichier texte nommé "Database.txt" qui est créé avant la recherche des restes et qui contient toutes les entrées du registre des logiciels installés, ce qui inclut notamment leur nom, leur éditeur ou leur chemin d'installation. Ce fichier texte est donc indispensable pour différencier efficacement un reste d'un dossier ou d'une clé du registre qui contiendrait des paramètres ou des données logicielles quelconques.
  25.  
  26. Fichiers ressources :
  27. ---------------------
  28. En plus de cette sorte de base de données, le script utilise également cinq fichiers texte nommés "Excluded Strings.txt", "Custom Rules.txt", "Blacklisted Strings.txt", "Ignored Strings.txt" et "Ignored Company Names.txt".
  29.  
  30. Le premier répertorie des chaînes de caractères et des expressions régulières qui correspondent à des noms d'éléments qui doivent être impérativement exclus de la recherche des restes car ils sont utilisés par le système ou des composants logiciels importants.
  31. Le deuxième fichier a presque la même utilité que le premier, mais contient cette fois-ci des règles d'exclusion personnalisées qui permettent d'exclure des noms et des chemins d'éléments utilisés par des logiciels bien spécifiques, mais qui sont impossibles à détecter en temps normal à cause de leur nom trop complexe ou fantaisiste.
  32. La troisième liste contient à l'inverse des noms d'éléments inutiles et indésirables qui sont détectés d'office comme des restes, comme les dossiers génériques créés par les frameworks Squirrel et Electron ou les clés du registre créées par des logiciels de débogage prêts à l'emploi comme BugSplat ou Sentry qui sont utilisés par certains jeux et logiciels connus.
  33.  
  34. La quatrième liste répertorie quant à elle des chaînes de caractères génériques à ignorer des recherches avancées pour tous les éléments qui n'auraient donné aucun résultat fructueux lors de la recherche de leur nom complet dans la base de données. Ces chaînes sont notamment très utiles pour détecter et ignorer de nombreux mots ou expressions inutiles qui provoqueraient des faux négatifs, c'est-à-dire des résultats fructueux erronés ou biaisés.
  35. Enfin, le cinquième fichier complète l'utilité du quatrième et contient des noms de sociétés de logiciels qui sont supprimés du nom complet d'un élément au cas où celui-ci n'aurait pas été trouvé dans la base de données. Cela permet ainsi d'éviter les faux négatifs qui pourraient survenir avec d'autres logiciels de la même société qui auraient été installés par l'utilisateur et qui fausseraient à coup sûr les détections.
  36.  
  37. Fichiers de débogage :
  38. ----------------------
  39. Pour cette version bêta, une fonctionnalité de création de log est activée par défaut pour faciliter l'amélioration du projet. Durant la recherche des restes, le script créera automatiquement un fichier texte de la forme "Log of (Date) at (Heure).log" dans un dossier nommé "Debug Files" pour laisser une trace de toutes les chaînes de recherche qui ont été utilisées pendant le processus. Cela s'avère ainsi très pratique pour améliorer rapidement les algorithmes de recherche et de détection des restes et débusquer des bugs complexes avec des noms d'éléments génériques ou cryptiques.
  40.  
  41. Indépendamment de ce mode, le script créera également un rapport de la forme "Report of Leftovers Found on (Date) at (Heure).txt" qui servira à répertorier le chemin de tous les restes détectés, ainsi qu'une liste de tous leurs noms pour une analyse rapide et efficace des détections du script. Parmi tous les autres fichiers de débogage mentionnés précédemment, c'est celui qui sera le plus utile et le plus exploitable pour l'utilisateur final. Si vous souhaitez en savoir plus sur son utilité et son fonctionnement, n'hésitez pas à consulter sa documentation interne.
  42.  
  43. Tous ces fichiers sont en tous cas compressés automatiquement dans une archive de débogage de la forme "Debug Files of (Date) at (Heure).zip" pour faciliter leur partage au développeur et l'amélioration continue de ce script. Notez que depuis la version 0.6, cette archive est complètement anonymisée de votre nom d'utilisateur Windows et ne contient aucune information susceptible de vous identifier personnellement.
  44.  
  45. Rapport des restes détectés :
  46. -----------------------------
  47. Le rapport créé par ce script a été conçu pour être le plus simple et le plus compréhensible possible. Il contient en effet une liste complète de tous les restes détectés pendant le processus de recherche.
  48. Celui-ci se divise pour l'instant en deux parties qui contiennent respectivement les dossiers et les clés du registre. Chaque partie est précédée par un en-tête associé et suivie du nombre total d'éléments trouvés, en incluant le nombre d'éléments vides et mis en liste noire.
  49. De la même manière, la taille totale qu'occupent les dossiers trouvés sur le disque est mentionnée dans l'unité la plus appropriée (Ko, Mo ou Go). En revanche, les clés du registre ont une taille négligeable qui n'est pas précisée.
  50.  
  51. Notez également que le chemin des restes détectés peuvent être suivis par une barre horizontale et une catégorie descriptive en majuscules qui détermine son type. La dernière version du script met ainsi en évidence les éléments vides (symbolisés par la catégorie "EMPTY ITEM"), les éléments mis en liste noire (indiqués par la catégorie "BLACKLISTED ITEM"), les éléments indésirables (désignés par la catégorie "UNWANTED ITEM") et les dossiers de profils obsolètes ou résiduels (désignés par les catégories "OBSOLETE USER FOLDER" et "RESIDUAL USER FOLDER").
  52.  
  53.  
  54. FAQ
  55. ---
  56.  
  57. Quelle est l'utilité de ce projet ?
  58. -----------------------------------
  59. L'objectif de ce script Batch est très simple, il vous permet de rechercher les restes de logiciels désinstallés sur Windows.
  60.  
  61. Malgré ce que l'on pourrait penser, lorsque vous vous amusez à désinstaller des logiciels à la main depuis le panneau de configuration ou les paramètres, ceux-ci ne vont pas se désinstaller complètement et supprimer toutes leurs traces. La grande majorité des programmes de désinstallation officiels laissent des traces plus ou moins importantes sur le système, que ce soit sur le disque ou dans le registre.
  62. En effet, les développeurs sont trop souvent négligents et accordent très peu d'importance à la désinstallation de leur logiciel. La plupart du temps, ils se contentent de laisser des données utiles après la désinstallation, comme des paramètres quelconques ou des informations de licence qui serviraient au cas où l'utilisateur réinstallerait le logiciel concerné dans le futur.
  63. Néanmoins, il arrive aussi qu'ils oublient volontairement de supprimer des informations sur sa période d'essai si celui-ci était payant, ce qui leur permettra à l'avenir de détecter une potentielle installation antique et de vous signaler par la suite que la période d'essai a expiré pour que vous passiez à la caisse. Ce qui est assez cocasse, c'est que des logiciels spécialisés comme Revo Uninstaller Pro ou Total Uninstall le font très bien alors qu'ils sont censés endiguer ce problème.
  64.  
  65. Mais alors, que se passe-t-il si vous avez désinstallé vos logiciels à la main et que vous ne connaissiez pas l'existence des outils de désinstallation automatisée ou que vous ne les aviez pas utilisés à ce moment-là ? Eh bien, vous ne pouvez tout simplement pas supprimer ces restes en quelques clics. Le problème est que vous ne pouvez absolument pas prédire les traces que vont laisser les logiciels que vous utilisez, que ce soit après une installation classique ou en mode "portable".
  66. Si vous avez de l'expérience dans le domaine, certains restes sont assez faciles à détecter car ils contiennent le nom du logiciel concerné et ne sont pas dispersés dans les moindres recoins du système. Mais il arrive aussi que des logiciels discutables utilisent des noms stupides ou très subtils que vous n'arriverez pas à détecter du premier coup d'œil car ils ne contiendraient pas le nom du logiciel concerné ou uniquement ses initiales ou le nom de son éditeur.
  67. Il peut même arriver que certains logiciels utilisent des noms d'éléments très difficiles, voire impossibles à trouver pour protéger ses paramètres ou ses données de licence du piratage ou de la copie. On peut notamment citer l'utilisation de termes techniques fallacieux que vous pourrez tout à fait confondre avec un élément système qui serait réellement utile ou des contractions stupides qui vous feraient ignorer l'élément en question.
  68. Autrement dit, à moins de très bien s'y connaître et d'y passer plusieurs heures, c'est impossible.
  69.  
  70. À ma connaissance, il n'existe aucun logiciel aussi efficace et complet que le mien pour détecter et nettoyer ce genre d'éléments. En effet, la fonctionnalité intégrée de IObit Uninstaller est risible puisqu'elle détecte uniquement des restes de logiciels connus qui sont répertoriés dans une base de données propriétaire et l'outil de SoftOrganizer n'est pas du tout efficace, tandis que CCleaner ne nettoie tout simplement pas ce genre de traces, donc je suis parti de zéro pour créer ma propre solution.
  71.  
  72.  
  73. Quel serait l'intérêt de nettoyer tous ces restes qui traînent sur mon PC ?
  74. ---------------------------------------------------------------------------
  75. Contrairement à ce que l'on pourrait penser, les restes de logiciels désinstallés peuvent prendre énormément de place sur le disque en s'y accumulant au fil du temps, et les rechercher automatiquement est un énorme avantage.
  76. Certains logiciels gourmands ou mal conçus vont effectivement laisser des traces à la taille très variable qui peut globalement se situer entre 1 et 200 Mo, voire bien plus. C'est notamment le cas des nombreuses applications Web comme Discord, Canva, DeepL ou Teams qui ont été portées en applications de bureau avec le célèbre framework Electron qui laisse malheureusement des dossiers d'en moyenne 100 Mo sur le système après que le logiciel en question ait été désinstallé.
  77.  
  78. Ajoutez à cela le fait que vous avez probablement désinstallé plusieurs logiciels de ce genre dans le passé et vous vous retrouvez facilement avec quelques Go de restes sur votre disque. D'ailleurs, sur certains configurations qui se sont bien encrassées avec le temps, la taille de tous ces restes peut aller jusqu'à plusieurs dizaines de Go, d'où l'intérêt de les rechercher et de les nettoyer en profondeur. Vous pourriez aussi vouloir supprimer les informations liées à la période d'essai ou aux paramètres d'un logiciel spécifique, ce qui vous prendrait pas mal de temps à faire à la main ou avec des logiciels spécialisés.
  79.  
  80. Notez cependant que les fichiers et les dossiers sont les seuls éléments qui peuvent avoir une taille conséquente sur le système, les clés et les valeurs du registre ayant une taille négligeable.
  81.  
  82.  
  83. Est-ce que ce script est sûr à utiliser ?
  84. -----------------------------------------
  85. Très honnêtement, il ne peut pas l'être à 100 % comme tout bon logiciel de nettoyage, mais j'ai beaucoup travaillé sur les algorithmes de sécurité pour qu'il y ait le moins de faux positifs possibles.
  86. Si vous avez justement trouvé des éléments de logiciels installés dans les résultats de recherche ou constaté des bugs ou des glitchs quelconques, n'hésitez pas à me les signaler pour que je puisse les corriger rapidement. ;)
  87.  
  88.  
  89. Est-ce que ce script va accélérer Windows ?
  90. -------------------------------------------
  91. Techniquement, il n'apportera aucune différence significative en termes de performances, si ce n'est sur les disques durs très remplis qui peuvent initialement ralentir le système. Typiquement, sur les configurations récentes équipées de SSD, ce script n'accélérera rien du tout, mais il pourra potentiellement libérer pas mal d'espace occupé inutilement et terminer la désinstallation de logiciels antiques et mal conçus.
  92.  
  93.  
  94. Quand as-tu créé ce script ?
  95. ----------------------------
  96. Je travaille très régulièrement sur ce script depuis plus de 9 mois, mais il faut savoir que c'est un projet que j'ai commencé en juin 2021. À l'époque, il était assez lent et fonctionnait plutôt grossièrement vu que ce n'était qu'un prototype, donc je l'ai rapidement laissé de côté pour un autre gros projet conséquent (le fameux WinExport 😉).
  97. Mais en février 2023, je suis retombé dessus et j'ai réalisé que son objectif final était extrêmement utile et innovant, donc je l'ai repris sérieusement pour l'améliorer en profondeur et le rendre beaucoup plus sûr et efficace.
  98.  
  99.  
  100. C'est super, ton script a détecté plein de restes sur mon PC, mais comment je fais pour les supprimer maintenant ?
  101. ------------------------------------------------------------------------------------------------------------------
  102. Pour l'instant, ce n'est pas encore possible car le projet n'est qu'en bêta et les algorithmes de sécurité ne sont pas encore assez sophistiqués pour dénicher uniquement des éléments sûrs à supprimer. En effet, les restes de logiciels désinstallés se mêlent très facilement à des paramètres ou des sauvegardes de vos jeux et logiciels favoris que vous ne voudriez pas supprimer par mégarde.
  103.  
  104. Il est en tous cas crucial de vérifier scrupuleusement chaque élément trouvé après la recherche pour être sûr de ne pas supprimer de données importantes comme des documents, des clés de licence ou des composants système tiers. La recherche des restes fonctionne effectivement comme un antivirus ou une IA car elle ne fournit pas de résultats fiables à 100 %, donc une vérification humaine est toujours essentielle pour vérifier si tel ou tel élément est bien un reste ou au contraire un faux positif.
  105. Rappelez-vous qu'un logiciel n'est jamais capable de traiter tous les cas possibles et de prendre en compte le contexte contrairement à un humain, donc réfléchissez à deux fois avant de considérer un élément comme un reste et prenez le temps de le vérifier attentivement. ;)
  106. Si vous avez quand même un doute, n'hésitez pas à inspecter son contenu pour vous assurer qu'il n'est pas lié à un logiciel ou un jeu que vous utilisez toujours. Vous pouvez par exemple fouiller dans ses dossiers ou ses fichiers pour en savoir plus sur leur utilité et trouver une éventuelle chaîne de caractères rédhibitoire comme un nom de jeu ou de logiciel.
  107.  
  108. En attendant cette fonctionnalité de suppression, n'hésitez pas à consulter la rubrique "Comment je pourrais contribuer à ce projet ?" pour accélérer les choses et m'aider à créer un logiciel robuste et sécurisé, ça m'aiderait beaucoup. :)
  109.  
  110.  
  111. Comment je pourrais contribuer à ce projet ?
  112. --------------------------------------------
  113. La meilleure chose que vous puissiez faire pour contribuer à ce projet est de m'envoyer l'archive de débogage qui contient tous les fichiers créés pendant la recherche des restes sur votre PC. Elle m'aiderait beaucoup à analyser le fonctionnement du script en conditions réelles et à débusquer des bugs précis qui se produiraient uniquement sur votre configuration.
  114. Pour en savoir plus sur ces fichiers créés automatiquement, n'hésitez pas à consulter la section "Fichiers de débogage" de cette documentation.
  115.  
  116. Bien sûr, si vous rencontrez des problèmes quelconques ou avez des suggestions sur le code ou l'expérience utilisateur, n'hésitez pas à m'en faire part, je serais ravi de lire tous vos retours et de les prendre en compte pour les futures versions. ^^
  117.  
  118.  
  119. Remerciements :
  120. ---------------
  121. Un grand merci aux personnes suivantes pour m'avoir généreusement aidé à tester et à améliorer ce script :
  122.  
  123. - spel
  124. - Nakyto
  125. - William
  126. - Dalsk music
  127. - copy
  128. - Weiss
  129. - Mithrandir
  130. - Bonnet
  131. - Powerbloom
  132. - Bros
  133. - N530
  134. - Plunder
  135. - f/barou
  136. - Lannes
  137.  
  138. En plus d'avoir passé beaucoup de temps à le tester et à le déboguer, elles m'ont permis de corriger énormément de bugs intermédiaires entre les différentes versions et je leur en suis très reconnaissant. :)
  139.  
  140. Un grand merci également à HiTech, mklement0 et AdminOfThings sur Stack Overflow pour leurs réponses exceptionnelles aux questions techniques suivantes :
  141.  
  142. - création rapide et efficace d'un tableau avec une boucle foreach dans PowerShell (HiTech) : https://stackoverflow.com/a/69576835
  143. - écriture simplifiée d'un tableau dans un fichier avec PowerShell (mklement0) : https://stackoverflow.com/a/74131513
  144. - échappement robuste des caractères spéciaux d'une commande PowerShell exécutée depuis un script Batch (mklement0) :
  145. https://stackoverflow.com/a/71012101 ; https://stackoverflow.com/a/49060341
  146. - interpolation d'un argument contenant des caractères de retour à la ligne lors de son envoi à PowerShell depuis un script Batch (AdminOfThings) : https://stackoverflow.com/a/65995192
  147.  
  148.  
  149. Dernière révision faite le 7 décembre à 21 heures.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement