dcsnoop.bt

Linux
Publiée le 2026-10-28 05:36:54
Illustration Linux pour la commande dcsnoop.bt

bpftrace


# Utilise bpftrace pour tracer l'entrée et la sortie du système de fichiers sur tous les processus
bpftrace -e 'kprobe:vfs_write { printf("Écriture FSYNC détectée sur %s\n", str(args->buf)) }'

# Trace un événement spécifique (ex: appel à write) pour voir le nombre d'arguments passés
bpftrace -e 'kprobe:sys_write { @writes[pid] = count(); printf("PID %d a fait %d écritures.\n", pid, @writes[pid]); }'

# Filtre l'exécution du programme uniquement sur un PID donné (ici 1234)
bpftrace --pid 1234 -e 'syscalls:sys_open { printf("Processus %d ouvre : %s\n", pid, str(args->filename)) }'

# Redirige toute la sortie de bpftrace vers un fichier journal pour l'analyse ultérieure
bpftrace -o trace_output.log -e 'kprobe:do_sys_open {}'

# Liste tous les points de contrôle (probes) disponibles dans le noyau (kernel probes)
bpftrace --list kprobe

# Liste les programmes ou les sondes spécifiques que tu peux tracer
bpftrace --list [filename]

# Exécute un programme en utilisant des variables d'environnement pour l'inclusion
bpftrace --include ./includes/common.txt -e 'printf("Début du script avec includes.\n")'

# Désactive une fonctionnalité spécifique (utile si tu as des problèmes de détection)
bpftrace --no-feature networking

# Trace les appels système et affiche le nom du processus qui les déclenche
bpftrace -e 'syscalls:enter { printf("Système appelé : %s\n", str(args->name)) }'

# Utilise l'option -e pour exécuter un programme simple sans fichier source
bpftrace -e 'BEGIN { print("Bonjour, je suis bpftrace !"); }'

# Trace les événements de mémoire (ex: allocation) et affiche la taille allouée
bpftrace -e 'kprobe:kmalloc { printf("Allocation mémoire : %d octets\n", args->size); }'

# Combine le filtrage PID avec une action spécifique pour un processus cible
bpftrace --pid 5678 -e 'syscalls:exit { printf("Processus %d a terminé.\n", pid) }'

# Trace les événements réseau (si les outils sont disponibles)
bpftrace -e 'kprobe:tcp_sendmsg {}'

# Exemple de traçage avec un format JSON pour une analyse machine facile
bpftrace -f format.json -e 'kprobe:sys_read { print($p, $s); }'