TUTORIAL · GEMIDDELD · 65 MIN

Bouw een bestandscontrole in Python

Maak een educatieve scanner die testbestanden controleert op zelfgekozen herkenningsregels.

1

Wat gaan we maken?

Deze oefening maakt GEEN echte antivirus. Je bouwt een eenvoudige bestandscontrole die in één oefenmap naar bepaalde patronen zoekt. Gebruik alleen zelfgemaakte testbestanden. Het programma verwijdert of wijzigt niets.

2

Maak een testmap

Maak in je PyCharm-project een map testbestanden. Voeg daar veilig zelfgemaakte tekstbestanden aan toe, bijvoorbeeld welkom.txt met "Hallo" en test.txt met de zin "DEMO_TEST_SIGNATURE". Dit is een onschadelijke oefentekst, geen echte malware.

Controleer: De twee tekstbestanden staan in de map testbestanden.
3

Doorloop de map

De bibliotheek pathlib kan bestanden in een map vinden. De scanner blijft beperkt tot de map testbestanden.

scanner.py
from pathlib import Path

map = Path(__file__).parent / "testbestanden"
for bestand in map.iterdir():
    if bestand.is_file():
        print(bestand.name)
Controleer: De namen van je testbestanden verschijnen.
4

Controleer testbestanden

We controleren een vaste demonstratietekst. Voor onleesbare of te grote bestanden tonen we een bericht. We openen alleen bestanden direct in onze eigen oefenmap.

scanner.py
from pathlib import Path

map = Path(__file__).parent / "testbestanden"
handtekening = b"DEMO_TEST_SIGNATURE"

if not map.is_dir():
    print("Maak eerst de map testbestanden.")
else:
    for bestand in sorted(map.iterdir()):
        if not bestand.is_file() or bestand.is_symlink():
            continue
        if bestand.stat().st_size > 1024 * 1024:
            print(f"{bestand.name}: overgeslagen (te groot)")
            continue
        try:
            inhoud = bestand.read_bytes()
            if handtekening in inhoud:
                print(f"{bestand.name}: oefenpatroon gevonden")
            else:
                print(f"{bestand.name}: geen oefenpatroon gevonden")
        except OSError:
            print(f"{bestand.name}: niet leesbaar")
Controleer: Alleen het bestand met DEMO_TEST_SIGNATURE wordt gemeld.
5

Verbeter je scanner

Tel het aantal gecontroleerde bestanden en het aantal meldingen. Toon op het einde een overzicht. Schrijf in commentaar waarom echte antivirus veel meer nodig heeft dan één tekstpatroon.

Controleer: Je programma wijzigt geen enkel bestand en onderzoekt geen mappen buiten je oefenproject.

Klaar met de tutorial?

Bewaar het project in PyCharm. Je kunt later nog verbeteringen toevoegen.

Andere tutorials