Home SantĂ© 🔍 Comment dĂ©tecter un virus Ă  l’aide de Go (Golang) : | de Abhishek Pillai | octobre 2025

🔍 Comment dĂ©tecter un virus Ă  l’aide de Go (Golang) : | de Abhishek Pillai | octobre 2025

0 comments 93 views

DĂ©veloppez votre propre outil de dĂ©tection de logiciels malveillants avec le langage de programmation Go. Cet article explique comment crĂ©er et exĂ©cuter un scanner de fichiers simple Ă  l’aide de signatures connues, directement depuis l’invite de commande Windows.

Dans un paysage numérique en constante évolution, la cybersécurité est devenue une préoccupation majeure. Au-delà des solutions antivirus commerciales, les développeurs peuvent désormais concevoir leurs propres outils légers pour identifier des menaces potentielles. Cet article propose un guide pratique pour construire un programme de détection de virus rudimentaire en Go (Golang), réputé pour sa rapidité et son efficacité.

Le principe de base de cet outil repose sur la recherche de « signatures » spĂ©cifiques : des sĂ©quences de caractères ou d’octets typiques des fichiers malveillants. Le programme parcourt rĂ©cursivement un rĂ©pertoire dĂ©signĂ©, analyse le contenu de chaque fichier et le compare Ă  une liste prĂ©dĂ©finie de signatures suspectes. Si une correspondance est trouvĂ©e, le fichier est signalĂ© comme potentiellement infectĂ©.

Ce scanner de virus en Go est conçu pour être simple et accessible. Il ne nécessite aucune bibliothèque externe ni connexion Internet, fonctionnant entièrement localement pour garantir la sécurité.

Le code GoLang pour votre scanner de virus

Vous pouvez copier le code ci-dessous et le sauvegarder dans un fichier nommĂ© virus_detector.go. Il sera ensuite exĂ©cutable via l’invite de commande.

package main

import (
	"bufio"
	"fmt"
	"os"
	"path/filepath"
	"strings"
)

// Définition des signatures virales connues (modifiables)
var virusSignatures = []string{
	"malware",
	"trojan",
	"worm",
	"virus",
	"keylogger",
}

func main() {
	fmt.Println("=== Scanner de Virus Simple en Go ===")
	fmt.Print("Entrez le chemin du répertoire à analyser : ")

	reader := bufio.NewReader(os.Stdin)
	dir, _ := reader.ReadString('\n')
	dir = strings.TrimSpace(dir)

	err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}

		if !info.IsDir() {
			checkFileForVirus(path)
		}
		return nil
	})

	if err != nil {
		fmt.Println("Erreur lors de l'analyse du répertoire :", err)
	}
}

func checkFileForVirus(filePath string) {
	file, err := os.Open(filePath)
	if err != nil {
		fmt.Println("Impossible d'ouvrir le fichier :", filePath)
		return
	}
	defer file.Close()

	scanner := bufio.NewScanner(file)
	lineNumber := 1
	found := false

	for scanner.Scan() {
		line := scanner.Text()
		for _, signature := range virusSignatures {
			if strings.Contains(strings.ToLower(line), signature) {
				fmt.Printf("[!] Signature virale détectée dans %s (ligne %d) : '%s'\n", filePath, lineNumber, signature)
				found = true
			}
		}
		lineNumber++
	}

	if !found {
		fmt.Printf("[OK] %s est sain.\n", filePath)
	}
}

ExĂ©cution du code via l’invite de commande Windows

Pour utiliser ce programme, suivez ces étapes détaillées :

Étape 1 : Installation de Go

Si Go n’est pas encore installĂ© sur votre système, tĂ©lĂ©chargez la dernière version depuis le site officiel golang.org/dl. Après l’installation, vous pouvez vĂ©rifier que Go fonctionne correctement en ouvrant une invite de commande et en tapant :

go version

Étape 2 : Création du projet

  1. Créez un nouveau dossier pour votre projet, par exemple C:\GoVirusScanner.
  2. Ă€ l’intĂ©rieur de ce dossier, crĂ©ez un nouveau fichier texte et nommez-le virus_detector.go.
  3. Copiez et collez l’intĂ©gralitĂ© du code Go fourni ci-dessus dans ce fichier.

Étape 3 : Lancement du programme

  1. Ouvrez l’Invite de commandes (CMD).
  2. Naviguez jusqu’au rĂ©pertoire de votre projet en utilisant la commande cd :
cd C:\GoVirusScanner

Exécutez ensuite le programme avec la commande :

go run virus_detector.go

Le programme vous demandera alors d’entrer le chemin du rĂ©pertoire que vous souhaitez analyser. Par exemple, vous pourriez saisir C:\Users\VotreNom\Downloads.

Étape 4 : Interprétation des résultats

Le programme affichera la liste de tous les fichiers qu’il a scannĂ©s. S’il dĂ©tecte une sĂ©quence de texte correspondant Ă  l’une des signatures virales configurĂ©es, il signalera le fichier concernĂ© ainsi que le numĂ©ro de ligne oĂą la signature a Ă©tĂ© trouvĂ©e. Par exemple :

[!] Signature virale détectée dans C:\exemple\fichier.txt (ligne 12) : 'malware'

Si un fichier ne contient aucune signature suspecte, le programme l’indiquera comme Ă©tant sain :

[OK] C:\chemin\vers\un\fichier\sain.txt est sain.

Fonctionnement et limites de l’outil

L’efficacitĂ© de cet outil repose sur sa capacitĂ© Ă  parcourir de manière exhaustive les rĂ©pertoires et Ă  utiliser la correspondance de chaĂ®nes pour identifier des schĂ©mas suspects. Contrairement Ă  des solutions professionnelles, ce scanner simple ne rĂ©alise pas d’analyse au niveau binaire, ne dĂ©tecte pas les malwares chiffrĂ©s ou polymorphes, et ne procède pas Ă  la suppression automatique des fichiers infectĂ©s. Il s’agit donc d’un excellent outil pĂ©dagogique pour comprendre les principes fondamentaux de l’analyse de fichiers et de la dĂ©tection de menaces, mais il ne saurait remplacer un logiciel antivirus complet et dĂ©diĂ©.

Cependant, il constitue un excellent point de dĂ©part pour les personnes souhaitant explorer le fonctionnement interne des moteurs d’analyse de sĂ©curitĂ© informatique.

Points clés à retenir :

  • Ce scanner Go identifie les fichiers potentiellement dangereux en se basant sur une liste de signatures suspectes.
  • La liste des signatures peut ĂŞtre personnalisĂ©e et enrichie pour amĂ©liorer la dĂ©tection.
  • L’exĂ©cution se fait facilement via la commande CMD : go run virus_detector.go.
  • Ce projet est idĂ©al pour les dĂ©butants curieux de cybersĂ©curitĂ© et de programmation en Go.
  • L’outil fonctionne entièrement localement, sans dĂ©pendances externes.

En conclusion, la crĂ©ation d’un outil de dĂ©tection de virus en Go offre une immersion fascinante dans le monde de la cybersĂ©curitĂ© et du dĂ©veloppement logiciel. La robustesse de Go, sa syntaxe Ă©purĂ©e et ses performances en font un langage de choix pour ce type d’application. Ce programme, bien que simple, permet d’analyser les fichiers Ă  la recherche de fragments malveillants et de fournir un aperçu direct des contenus suspects sur votre système. C’est un exemple concret de la manière dont la gestion de fichiers, le traitement de chaĂ®nes de caractères et l’interaction en ligne de commande peuvent ĂŞtre combinĂ©s pour crĂ©er des applications utiles.

Leave a Comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.